I would like to leave this for another pr. :-)
It is already huge.