couldn't all or part of this be handled by the Drafts object?