Accumulate
Make readable
Add tests
Rename
Accumulate