talk() fields is optional