user functionality added