Initial commit

First working draft, not finished version.