clone source from https://www.assembla.com/code/openach/subversion/nodes/200/trunk/protected/extensions