avoid toLowerCase when possible to avoid unnecessary string creation.