Restructure source code.
Add in composer support.