Move time evaluation logic into a single protected method