refactored alot of code to abstract hpmlObjects