Tokens can be tracked, but not duplicated.
Missing the strategy separation and the code cleaning.