renamed cat->push; coalesce->cat