Initial commit
Mostly working version