[refactoring] listeners redesign and tests added