You might want to create a separate module for CRUD and validation and use an interface for interaction with child object and then create separate children for each parent because the address is being used in different use cases. The properties are repeated but key activities are kept central.
Cheers
Copyright (c) Marimer LLC