generate selections
these don't always exist