support multiple column choose
refactor
Merge pull request #189 from marsqing/master

 support multiple column choose and small refactor
merge