If we make the parent field the actual parentBuilder type and not use P for two different meaning we can remove that cast.