     
     /// This is a concrete implementation of an Event.
     // It defines everything that an event, as seen by the server
-    class Event {
+    internal class ShippableEvent {
         
         let version:String = "1.0.0"
         

}

public extension EventProtocol {
    
    // make properties optional
    var properties:[String:AnyObject]? {
        return nil
    }
    
}

public extension EventProtocol {
    // utility track method
    func track(with tracker:EventsTracker? = EventsTracker.globalTracker) {



// Make the Event work with the pool
extension EventsTracker.ShippableEvent : PoolableObject {
    
    var poolId:String {
        return self.uuid
