like 'reduce' better than 'inject'