working implementation of par merge