First commit

Mostly working just needs a installer, and the code to be checked.