more appropriate conditional branching