Unified current state onto upstream/master
Test if this fixes the same stuffs
Improve comments and var naming
Finalize docs and improve implementation