Add function generating class methods for each kind of transition, and classes to contain the logic for using them.
Change Profile class to use a start value and a set of changes.