Documented and cleaned up code
Fixed usage assurances
Renamed variables to be better
Ensured that code conformed to idiomatic python norms