explain when None is returned. I think I'd prefer a RuntimeError than returning None and see the code break just after. ok?