Index: trunk/FACT++/src/EventImp.cc
===================================================================
--- trunk/FACT++/src/EventImp.cc	(revision 13829)
+++ trunk/FACT++/src/EventImp.cc	(revision 13830)
@@ -122,6 +122,5 @@
 //!  fFunction)
 //
-EventImp::EventImp(const EventImp &cmd) :
-    fTargetState(cmd.fTargetState), fAllowedStates(cmd.fAllowedStates),
+EventImp::EventImp(const EventImp &cmd) : fAllowedStates(cmd.fAllowedStates),
     fFunction(cmd.fFunction)
 {
@@ -242,9 +241,4 @@
     for (unsigned int i=0; i<fAllowedStates.size(); i++)
         out << " " << fAllowedStates[i];
-
-    if (fTargetState<0)
-        out << " (conf)";
-    else
-        out << " (trans->" << fTargetState << ")";
 
     const Time tm = GetTime();
@@ -298,2 +292,12 @@
     Print(cout, strip);
 }
+
+string EventImp::GetTimeAsStr(const char *fmt) const
+{
+    return GetTime().GetAsStr(fmt);
+}
+
+uint64_t EventImp::GetJavaDate() const
+{
+    return GetTime().JavaDate();
+}
Index: trunk/FACT++/src/EventImp.h
===================================================================
--- trunk/FACT++/src/EventImp.h	(revision 13829)
+++ trunk/FACT++/src/EventImp.h	(revision 13830)
@@ -11,5 +11,4 @@
 class EventImp
 {
-    int              fTargetState;   /// Target state of an event
     std::vector<int> fAllowedStates; /// List of states in which this event is allowed
 
@@ -19,5 +18,5 @@
 public:
     /// Constructor. Stores the target state given.
-    EventImp(int target=-1) : fTargetState(target) { }
+    EventImp() { }
     /// Copy constructor
     EventImp(const EventImp &cmd);
@@ -29,5 +28,5 @@
 
     // Function handling
-    EventImp &AssignFunction(const std::function<int(const EventImp &)> &func) { fFunction = func; return *this; }
+    EventImp &AssignFunction(const std::function<int(const EventImp &)> &func=std::function<int(const EventImp &)>()) { fFunction = func; return *this; }
     bool HasFunc() const { return (bool)fFunction; }
     int ExecFunc() const { return fFunction ? fFunction(*this) : -1; }
@@ -49,6 +48,4 @@
     bool IsStateAllowed(int state) const;
 
-    int  GetTargetState() const { return fTargetState; }
-
     // virtual function to return the data as stored in the derived classes
     virtual std::string GetName() const   { return ""; }
@@ -56,11 +53,15 @@
 
     virtual const void *GetData() const { return 0; }
-    virtual int         GetSize() const { return 0; }
+    virtual size_t      GetSize() const { return 0; }
 
     virtual Time GetTime() const { return Time::None; }
+    virtual int  GetQoS() const  { return 0; }
+
+    std::string GetTimeAsStr(const char *fmt) const;
+    uint64_t GetJavaDate() const;
 
     // Generalized access operators
     template<typename T>
-        T Get(int offset=0) const
+        T Get(size_t offset=0) const
     {
         if (offset>=GetSize())
@@ -70,9 +71,15 @@
 
     template<typename T>
-        const T *Ptr(int offset=0) const
+        const T *Ptr(size_t offset=0) const
     {
         if (offset>=GetSize())
             throw std::logic_error("EventImp::Ptr - offset out of range.");
         return reinterpret_cast<const T*>(GetText()+offset);
+    }
+
+    template<typename T>
+        const T &Ref(size_t offset=0) const
+    {
+        return *Ptr<T>(offset);
     }
 
