Opaque: Refactor constructors and assignment as initially done. There is a recursive issue with the simplification