using reflecting on instance variables
more refactoring
moar stuffz