add user_impl func