top-level keys and values work
add save button
recursive dictionaries are handled