implementing merge (here called subsume for fun)