use lowercase keys for validation