Split out extension based editing into its own file