Here is a pull request for you Long

The idea here is that I compare my changes with your code and we can discuss what to keep and commit and what to not keep.