new version - tested with 3.9