refactor, testing for lifecycle events, separated databinding engine from module activator