It would be useful to know
(1) Why do you have to use booleans to flag everything right now (without parent_of)?
(2) How you would like to use it to simplify things exactly?