PEP386 compliant version