There are many cases in the code where `None` is used as the default value.  

This has the advantage that you can then wrap the function with another function with takes optional kwargs without ending up with the default value stored multiple places and with out worrying about all functions not having `**kwarg` in their signatures.  

This comment should be applied to many of your function signatures.