add multiselect, sorting

Resolves #13, #40, #51, #55.