add evaluate method