Tightened up UI and error handling