First commit. Basic functionality working