juggle some functions between the arrays and functions modules -- trying to find the most appropriate place; generalize concat and zip