user functionality overhaul