Finished implementation, added Builder, separated common metadata from
change type.