Shameless

Hm. I will try to reduce to shorter methods. Yes, you're right, it is a good challenge.