Initial commit

Largely working