refactored equip method