implement reduction shape