This is a version of the public domain implementation