Clean up, refactor, add client