I'm kidding about religion, of course. We should be pragmatic and write code that is maintainable and readable. At the same time we should understand that maintainability means, mostly, an adherence of our code to the principles and rules in our current domain. Unfortunately, OOP (our domain) was mostly abused by programmers, for many years. In current Java world very few projects/programmers use real OOP. In most cases, they use Java as "just another tool" to make things work. That's why "maintainable code" means "something that looks similar to what I've seen before". I'm trying to work in a proper OOP way, that's why the code above looks perfect to me. To you it's not, mostly because you are used to something else.

So, you can either believe me that what I'm used to is a proper OOP, and learn it. Or you can just blindly follow my requirements. In both cases, the software will be good, but in the first case you will learn something new :)