this is not py2.6 compatible.