Plat 592 writable sources

I'm guessing you're making the assumption that none of the callbacks could be null? If so I'd add asserts in the constructors to catch these types of errors early.