provides a set of interfaces for use in model classes, similar to active-model in ruby.