Is it standard for us to return `None` in case of failure?  Maybe we should raise and catch `NotImplementedError`s.