Custom event-like class