enhance withShallow methods to support nested keys. Closes #109