There are known to be a number of implementations floating around; we should work towards merging the best of them back into the trunk and/or cleaning up the ones already in the trunk and getting them to work again.