That sounds like a good modular design to start with. Everybody has a clear and well-defined role so far. So your question then is, which class should be responsible for orchestrating everything...