full UI functionality