refactored users to be more modular