ported to Python 3, added description in Markdown file