always evaluate because it's fast