You might also wan'twant to consider a component based approach for your game. I can point you to these two articles on the subject: 1 - 2
- Component Based Engine Design (archived from Randy Gaul's Game Programming Blog)
- various entries on entity component systems on Cowboy Programming
If you search for "component based game architecture" or "entity component system" you should be able to find a lot more on the subject.