Minor comment: I would only use the ## for comments in the public methods. In the private section, not necessary and then we can save some lines.