introduced lots of helper methods and such. this class was messy! And impossible to understand properly! still under construction
lots of renaming and basic helper methods introduced.