first idead for event handling with callbacks