Right, but wouldn't it be easier to have one central class?
I think a lot of "home brew" engines or libraries suffer from lack of code organization. When you give your library to a developer who has never used it, you want them to be able to understand your library as quick as possible. Using three different classes to perform small tasks only causes confusion about which to use. A single class will prevent that (obviously) because there is only one class that can control the engine.
I know, its just the beginning of your engine so it probably doesn't matter that much, but engine developers really have to think about how code goes together, and fragmentation of functions so the end user can have the best experience with your engine. I also have a small library I use sometimes, and I made sure to centralize code, and it works great. MERCury is a prime example of it also.
I know I'm just some weirdo ranting on, but code structure is something to think about when designing engines, and its important.
Oh and no offense, this line:
Made me cringe a little. Are you doing state changes based on strings? That's just asking for confusion. At least have an enumeration or constants to switch off of.