Basic functionality working. Much refactoring and styling still needed.