I'll put up the changes on another tree and you can merge them into this one if you want. Looking at the code it's a bit more verbose but more obvious for outsiders and people less familiar with Python.