mostly finished user interface