First commit: UI and API