Content provider implementation

Also build out a lot of the functionality of the data classes.