refactored the crap