renamed ReturnType to ResultType