add canSelect()