Now more consistent return values: None indicates error