refactor again :)
SourceCombiner