Somewhat less terrible API.