rename field -> property. key -> keyPath