1. event posting to eventbus
2. refactoring