We need to refactor the logic related to EvaluatorState and State enums. It is currently spread across several classes, and is not always consistent. Method names are clumsy, e.g. .isDoneOrFailedOrKilled(); EvaluatorStatusManager class has all its methods synchronized, although having an atomic enum reference would be enough. We also need to add more javadocs and clean up the code for readability.