Make the objects more OO instead of functional