Better OOP with more explicit abstraction.