Updated UML based on Chris' last push.