moved decomposeIntoChangeEvents into ChangeExtractor