open more Selection.js to help leverage from List, improve
testing, improve doc