This is super, super confusing. I called `GitPathTool` without arguments -- why does the return value act like I called it with an argument?