So I keep feeling that a bunch of passed options are actually unnecessary as they don't really change over current use cases; I could totally see it implemented that way:

```js
startConversation: function(peer) {
  this.queue.push(peer);
  var options = this.options;
  options.peer = tkWorker.users.get(peer);
  this.set(peer, new Conversation(options)); 
  // ...
}
```

(not sure about this very implementation but you got the point)