Replaced NullResult with Rx's Unit for simplicity, no longer requires result to implement IResult.