changing OOP stuff to something i actually understand.