start refactoring behavior into manager