add Python 2.7 compatibility, plus docstring