Have you tested to make sure that the vlaidator wont instantiate your entire subdocument twice over? 

So it won't strip the classes from your iterator class and then completely rebuild the classes.