refactored
refactor all the things