Not doing a logic review right now, but I'm not sure returning `nil` instead of raising an exception is the right thing to do here.