Initial commit of full skeleton. Has some code style problems, but works