object orientation is awesome