~ minor
~ cleanup
~ use numeric limits
~ use c++1y
* v2.0