add MultiValueProvider support
improve error handling
add test for MultiValueProvider and change key generation to also use provider name
add TODO for change request