Whenever a token is not added, or any error of that nature happens, false should be returned by the addToken method.
It's currently returning the object it did create, but was not able to add. Which can be misleading and doesn't allow the calling code to easily know if it succeeded or not.
Thanks,
Alvaro Oliveira.