added smoosh() implementation