Interface change rebase (4)

This is a rebase of gh-296 on top of today's master.

I think the PR is ready for reviewing, even though there are a few things left to polish and update. I think most of that job can be handled after the PR is merged, that would ease the hassle of rebasing 84 commits on top of the latest master.

Previous comments are on:
- gh-233
- gh-265
- gh-296