keys can be empty