A consumer can still call zip_in_out_type() since it inherits from VimapPool, so I'm not sure what safety or convenience this provides. I'd argue for the same interface on both and only be able to set the chunk size in the constructor; to me that seems reasonable to have baked into the pool's definition.