improved performance with using Maybe<T>.None