yes, but the constructor calls add()
Also the constructor calls parent::__construct, which also calls add() with the default commands (list and help), 

So we have to allow three add() calls and throw exception for subsequent add() calls