The data access code was intended to display as simply as possible how the Model should be architected in regards to encapsulation. Switching out the data access code itself with something more robust, while still maintaining the overall Model architecture is in fact encouraged. I should have made that more clear, thanks for the feedback.