refactored into classes
refactored into classes
removed crap