valueForKeyPath is used in place of objectFoKey