functionally working and unit tested the most common scenario
including both versions, but will remove the readonly version
can save now, but need to work on using factory method to hide constructor
functionally working and unit tested the most common scenario
including both versions, but will remove the readonly version
can save now, but need to work on using factory method to hide constructor