Coding Convention
- use 4 spaces to intent, no tabs
- do not exceed 79 characters per line
- use blank lines to separate classes and functions
- when possible, place comments on their own line
- use docstrings
- use spaces around operators and after commas
- always use
self
as the first argument for allclass
functions