First commit

Adding all functionality