Legacy interface

I brought legacy-interface up to speed with master. Let's bring these changes in (because they're good) and we can keep on thinking about compatibility separately :)