actually finished, and the user interface now works