Implemented event based approach