If you find a better way to explain how this library works feel free to make a pull request with your suggestion.