Thanks Dave, This one was hard to track... Anyway, in the interface section the method name is EvaluteComplete, but in the implementation it is EvaluateComplete (note the missing letter "a"). Now it works fine.
The above code does not compile: There are two definitions of EvaluateComplete; therfore they should be marked with overload.
Really a great developement. Thanks to eugene and his friends!