working prototype, just needs test cases. all custom ui commands passing