refactored like everything
refactored like everything