generalize select, unselect; add possibility to annimate