Problem: zrex API is a little clunky

Solution: various cleanups to make this more explicit. Since trex
didn't work, we can assume no-one was using this class yet, so the
API change won't break existing applications.