use `Enum.reduce`

closed #2