anchor.diff:  handle_call({reset}, _From, #cstate{table=C}=State) ->
       {reply, ets:delete_all_objects(C), State};
   handle_call({has_config, Kind, Name, Commit}, _From, #cstate{storage=StoreMod}=State) ->
  -    Result = generic_lookup(Kind, Name, Commit, State, false),
  -    case Result of
  -	{value, Config} when is_list(Config) ->
  -	    {reply, true, State};
  -	_ ->
  -	    {reply, Result, State}
  +    Default = case Kind of
  +		  node ->
  +		      true;
  +		  _ ->
  +		      false
  +	      end,
  +    case generic_lookup(Kind, Name, Commit, State, Default) of
  +	{value, Result} ->
  +	    {reply, Result, State};
  +	Lookup ->
  +	    {reply, Lookup, State}
       end;
   handle_call({config_for, Kind, Name, Commit}, _From, #cstate{re=RE, table=Cache, storage=StoreMod}=State) ->
  -    {value, Config} = generic_lookup(Kind, Name, Commit, State, []),
  +    Default = case Kind of 
  +		  node ->
  +		      {wallaby_lw_config, Commit, [<<"+++SKEL">>, <<"+++DEFAULT">>]};
  +		  _ ->
  +		      []
  +	      end,
  +    ?D_LOG("{config_for, ~p, ~p, ~p} --> ~p", [Kind, Name, Commit, generic_lookup(Kind, Name, Commit, State, Default)]),
  +    {value, Config} = ?D_VAL(generic_lookup(Kind, Name, Commit, State, Default)),
       {reply, Config, State}.
   
   handle_info(_X, State) ->
  
positive.code: 	    find_failed
      end.
  
  %% XXX:  after changing how cache_fetch works, there's no reason to keep both it and _find
  cache_fetch(Kind, Name, Commit, State) ->
      cache_fetch(Kind, Name, Commit, State, []).
  
  cache_fetch(Kind, Name, Commit, State, Default) ->
      case cache_find(Kind, Name, Commit, State) of
  	{value, Result} ->
  	    Result;
  	find_failed ->
  	    Default
      end.
  
  generic_find(Kind, Name, Commit, CommitObj, State) ->
  
negative.code:   when Kind =:= 'node' ->
      %% get node object from tree
      {value, EntityObj} = wallaroo_tree:get_path([path_for_kind(Kind), Name], Tree, StoreMod),
      Config = {wallaby_lw_config, Commit, wallaby_node:all_memberships(EntityObj)},
      cache_store(Kind, Name, Commit, Config, State).
      
  reconstitute_config({wallaby_lw_config, Commit, Memberships}, State) ->
      lists:foldl(apply_factory(false, State), [], [cache_fetch(group, Membership, Commit, State) || Membership <- lists:reverse(Memberships)]);
  reconstitute_config(Val, _) ->
      Val.
  
  join_factory(Bin) when is_binary(Bin) ->
      fun(Old, New) ->
  