This comment challenges the ``create_course`` and ``create_item`` signatures not the Factory signatures. I'm partial to having these take instantiated xblocks w/o ids and causing their persistence, but that's not how they work right now. Now they use their understanding of the db repr to create a json obj and send to mongo; so, they need to 'know' which things go where such as ``fields`` go in the ``fields`` dict at top level of the doc.