I'm curious, why do you need to override result, onComplete, isCompleted and value? Will it not call the right version otherwise?