putting alteration chemistry into its own module