further refactored the go pattern in evalPred