Add desc
Add docstrings, clean up get methods, use hash instead of cmp for Python 3 compatibility