http://keyholesoftware.com/2013/01/14/modularization-in-typescript/