Add EventDefinition class

Instead of everything being stored on the Client object