Split prep

See http://tracker.ceph.com/issues/6978#note-15 and the next couple comments.
why the double underscore here instead of just accepting an optional argument? The double underscore creates extra bookkeeping in your other methods because now you need to set that attribute to every instance you create (since double underscores are kept tied to classes)