Feature branch

Adding all functionality.