start implement triselect