basic custom select functionality