huge refactoring - part one
objects messed up, but its working