Thats hard to understand. You accept a parameter called "startPoint" but you will always set the class attribute "startPoint" to null. If we would call the parameter startCommit instead of startPoint the code would look clearer.

I guess the same comment is also true for some other commands. I'll check and fix them also.