Initial commit. Working API and minimal UI. Still needs some cleanup.