added whenDone(Func0) operation.
initial tests.