First commit
First version that provides full basic functionality