smap & sreduce rethought