halfway-changed extension API