Seperate out Persistence and Atributes modules

Cleans the different concerns into modules. Model includes both of these
modules, but now they can be tested independently and used in external
classes.