implement --select