Use the Decorator Pattern To Reduce Code Duplication in Complex Models