If drafts.js needs to construct Thread objects, it creates a circular dependency because threads.js already depends on drafts.js for Thread.prototype.drafts and Thread.prototype.hasDrafts