Split decay logic into more private methods.
Break modification list upgrade into multiple methods.
Move each data upgrade into its own class.
Remove unused method.