attempting to migrate to real OO programming. I can't work on this if I don't learn something new