added onSelectionChange