added sub-modules

Hi

I've extended the usage of your library structure to use sub modules. It felt more OO to me.
I've added a SubModules directory with a sample sub module. I tried to conform with your style for comments.
Also, I've added unit tests which I believe can help understand the usage for the sub modules.