reworked extension objects to store the data we need for runtime toggling