Buncha OOP related changes.