rewrite half relmap constructor