tdd evaluateToken and evaluatePunch took care of multi type specific logic