Refactors system to use CRUD subclasses
Adds validation tests