* This moves the check and conversion to lower case to the public interface and simplifies internals.