break down the version single-source techniques
Merge pull request #55 from qwcode/single_source_version

break down the version single-source techniques