event base refactored