Added filter attributes to specify specific events to call methods for. Moved most mutating code to events. Created entity class which provides event filtering functionality.