I suggest a separate -validate method, as the validation logic is conceptually a different task to generating the replicator document. I'd call -validate at the start of -dictionaryForReplicatorDocument, as then -dictionaryForReplicatorDocument can concentrate on creating the dictionary rather than validation logic.