This is complete excluding Reporting and Notifications which can be added at a later date. I just really wanted to get the schema and the functionality into place.