So `options.p` depends on `options.addSource` being called before other methods that need it.  Another good place to do some comments, especially at the top.  Methods that have to happen in order or bug ridden; but I understand why you're doing it here.  Just be clear about it, and maybe guard against it in other spots vs. assuming `options.p` exists?