generalize surroundAll