Changing evaluate() to return status rather than set it itself, broken at the moment but will work! Probably going to transfer it into a service