You can dramatically simplify your code by using value objects, but to create a value object that makes sense to the developer who uses it, you need to redefine what the equals sign means. Along the ...
Results that may be inaccessible to you are currently showing.
Hide inaccessible results