set shell properly
has_keys, has_only_keys