Cleaned up the dynamic action class hierarchy and consolidated some code.

This also prevents the creation of some objects during the copy operation that would immediately be discarded.