refactoring (managers, listnere, events, model)