implemented selection states