added errors module, removed groups from model, added purposes / requirements to model instead which will be more useful