Added a bunch of object oriented functionality. It needs some work still
tho.