http://www.zeab.org/bf1py.html