basic user-interface skeleton