v2.0.0 totally revamped
Added Cache, improved algorithms