Also, see f426f8ba7f57546331c4003f7b8ed64a2e5f8ea0

I tried to split changes into separate commits :-)