initial version usable under CPython 2.7
merge