Nit: it isn't necessary to define and use *self*, because the *simulator* singleton refers to the same object. So just use that instead. (If it wasn't available, the nit would instead be that *Function.bind* is the new hotness.)