refactored user methods