progress towards OO
base working, needs a few things implemented and needs some cleanup of old methods from non-oo version