rvalue Result instead of pointer (+ some fixes)