More work, simplified the types -- they were getting unwieldy