this doesn't really take full advantage of map/reduce...