Patch Set 1: I would prefer that you didn't submit this

(3 inline comments)

I expect that the next changeset would look quite different because we split the different modes into own classes. Therefore I don't review fully now.