There is a slightly different pattern in here which will make it simpler to deal with caching and cassandra. Principals uses it now too after the difficulties dealing with the cached representation v.s. the model representation when they differ.