anchor.diff:                      CmdList);
           1 ->
             % Use the entered parameter as the command Name
  -          case Params of
  -            ["create"]    -> ui_create_block_help();
  -            ["copy"]      -> ui_copy_block_help();
  -            ["rename"]    -> ui_rename_block_help();
  -            ["execute"]   -> ui_execute_block_help();
  -            ["delete"]    -> ui_delete_block_help();
  -            ["disable"]   -> ui_disable_block_help();
  -            ["enable"]    -> ui_enable_block_help();
  -            ["freeze"]    -> ui_freeze_block_help();
  -            ["thaw"]      -> ui_thaw_block_help();
  -            ["get"]       -> ui_get_values_help();
  -            ["set"]       -> ui_set_value_help();
  -            ["link"]      -> ui_link_blocks_help();
  -            ["unlink"]    -> ui_unlink_blocks_help();
  -            ["status"]    -> ui_status_help();
  -            ["types"]     -> ui_block_types_help();
  -            ["valid"]     -> validate_block_name_help();
  -            ["load"]      -> ui_load_blocks_help();
  -            ["save"]      -> ui_save_blocks_help();
  -            ["node"]      -> ui_node_help();
  -            ["nodes"]     -> ui_nodes_help();
  -            ["connect"]   -> ui_connect_help();
  -            ["hosts"]     -> ui_hosts_help();
  -            ["help"]      -> ui_help_help();
  -            UnknownCmd    ->
  -                io:format("No help for: ~s~n", [UnknownCmd])
  +          [CmdHelp] = Params,
  +          CmdAtom = cmd_string_to_cmd_atom(CmdHelp),
  +          case cmd_atom_to_help_function(CmdAtom) of
  +            {Module, HelpFunction} -> 
  +              Module:HelpFunction();
  + 
  +            unknown_cmd ->
  +                io:format("No help for: ~s~n", [CmdHelp])
             end
         end;
       high ->
  
positive.code: 
  ui_block_types_help() ->
    io:format("TODO: Insert types help text here~n").
    
  validate_block_name_help() ->
    io:format("TODO: Insert validate help text here~n").
    
  ui_load_blocks_help() ->
    io:format("TODO: Insert load help text here~n").
  
negative.code: %%% filled in
  
  expand([$  | _]) ->
    {no, "", []};
  expand(RevBefore) ->    
    Before = lists:reverse(RevBefore),
      case longest_prefix(ui_en_us:cmd_string_map(), Before) of
  	    {prefix, P, [_]} -> {yes, P ++ " ", []};
  	    {prefix, "", M}  -> {yes, "", M};
  	    {prefix, P, _M}  -> {yes, P, []};
  	    {none, _M}       -> {no, "", []}
      end.
  
  %% longest prefix in a list, given a prefix
  longest_prefix(List, Prefix) ->
    case [A || {A, _, _} <- List, lists:prefix(Prefix, A)] of
  	  [] ->
  	    {none, List};
  	  [S | Rest] ->
  	    NewPrefix0 =
  		    lists:foldl(fun(A, P) ->
  				              common_prefix(A, P, [])
  			              end, S, Rest),
  	    NewPrefix = nthtail(length(Prefix), NewPrefix0),
  	    {prefix, NewPrefix, [S | Rest]}
      end.			
  
  
  common_prefix([C | R1], [C | R2], Acc) ->
    common_prefix(R1, R2, [C | Acc]);
  common_prefix(_, _, Acc) ->
    lists:reverse(Acc).
  
  %% 
  %% same as lists:nthtail(), but no badarg if n > the length of list
  