throw error when PUT key and body don't match
add some javadocs
add basic validation