Merge branch 'pu'
Started revisiting this README. (Sadly- 4 years neglected)
Flatten optimization
Functional style is a bit faster here