https://djangosnippets.org/snippets/2132/
Anonymous
Separate policy from mechanism, separate interfaces from engines.