Add forKeyPath instead forKey for more flexibility