Reduce object allocations when using parents

I noticed that every time you call parents, it creates a new Parents instance creating unnecessary object allocations.  This PR lazily loads and stores the Parents object.