adds user interface (incomplete)