What the fuck do you guys have against encapsulation? Don't you know that it's better to define interfaces abstractly rather than concretely, that *what* something does is more important than *how* something does it, so that the implementation can change without users' care?