Abstraction of patterns allowing the repositories have extreme flexibility and code reuse.