To support a backwards compatible interface, we'll have to jump through a bunch of hoops.