Initial commit.
Basic functionality, not tested