requires Python 2.6 or later