If the basic concept is sane, I can refactor the remaining ones, as well, before we merge.