created some manager classes for the separation of concerns