Initial commit mostly working