added optional token