This is a good thing to work on as it makes you think, about how things work together. Putting a solid program together is not just a collection of stuff, and I'm seeing you think about this aspect with what your doing here.
I enjoy the process of thinking, "what do I want to accomplish", and then planning for that goal. Follow this path to the end.
Look at what I've laid out, and see if you can use this template. This is working well for me. I think it is pretty close to what you're trying to do.