optional tokens: remove duplicate tokens in deregister call
don't use setValue for optional tokens but set value directly

calling setValue fires an onChange event, which creates a duplicate of
the token.
simplify token initialization