now mostly functional user interface