Now processes generic parameters properly.
Added async method return guard.