user functionality completed