Better argument validation. I shouldn't use NullPo here.