map4 I guess
my copy of andy's code, version 1