Reworked how extension models work