charm: make zipOpener an interface