implement some font end of smart selection