anchor.diff:  %% =====================================================================    
   % TODO: Set initial attribute values
   handle_call({copy_block, BlockName, BlockValues, _InitAttribs}, _From, State) ->
  -	% Make sure the block values to be copied are the correct form
  -	case BlockValues of
  -		{Config, Inputs, Outputs} ->
  -			% Get the block module from the copied config values 
  -			case attrib_utils:get_value(Config, block_module) of
  -				{ok, BlockModule} ->
  -					% Make sure the block type to be copied, exists on this node
  -					case lists:member(BlockModule, block_types:block_type_modules()) of
  -						true ->
  -							% Make sure the block name is not already used
  -  						case valid_block_name(BlockName) of
  -								false ->
  -									% Create the block, but ignore the default values
  -									BlockModule:create(BlockName, "Default Comment"),
  -									% Change the name in the copied block values, to the new block name
  -									{ok, NewConfig} = attrib_utils:set_value(Config, block_name, BlockName),
  -									% Start the new block with the set of copied values, only the block name config value is changed
  -									case block_supervisor:create_block({NewConfig, Inputs, Outputs}) of
  -            				{ok, _Pid} -> 
  -          						Result = ok;
  -            				{error, Reason} -> 
  -              				Result = {error, Reason}
  -									end;
  -								_ ->
  -									Result = {error, block_exists}
  -							end;
  -						_ ->
  -							Result = {error, invalid_block_type}
  -					end;
  -				_ ->
  -					Result = {error, invalid_config_valus}	
  -			end;
  -		_ ->
  -			Result = {error, invalid_block_values}
  -	end,	
  +  % Make sure the block values to be copied are the correct form
  +  case BlockValues of
  +    {Config, Inputs, Outputs} ->
  +      % Get the block module from the copied config values 
  +      case attrib_utils:get_value(Config, block_module) of
  +        {ok, BlockModule} ->
  +          % Make sure the block type to be copied, exists on this node
  +          case lists:member(BlockModule, block_types:block_type_modules()) of
  +            true ->
  +              % Make sure the block name is not already used
  +              case valid_block_name(BlockName) of
  +                false ->
  +                  % Create the block, but ignore the default values
  +                  BlockModule:create(BlockName, "Default Comment"),
  +                  % Change the name in the copied block values, to the new block name
  +                  {ok, NewConfig} = attrib_utils:set_value(Config, block_name, BlockName),
  +                  % Start the new block with the set of copied values, only the block name config value is changed
  +                  case block_supervisor:create_block({NewConfig, Inputs, Outputs}) of
  +                    {ok, _Pid} -> 
  +                      Result = ok;
  +                    {error, Reason} -> 
  +                      Result = {error, Reason}
  +                  end;
  +                _ ->
  +                  Result = {error, block_exists}
  +              end;
  +            _ ->
  +              Result = {error, invalid_block_type}
  +          end;
  +        _ ->
  +          Result = {error, invalid_config_valus}  
  +      end;
  +    _ ->
  +      Result = {error, invalid_block_values}
  +  end,  
     {reply, Result, State};
   
   %% =====================================================================
   %% Delete a block
   %% =====================================================================    
   handle_call({delete_block, BlockName}, _From, State) ->
  -	case valid_block_name(BlockName) of
  -		true ->
  -			case block_supervisor:delete_block(BlockName) of
  +  case valid_block_name(BlockName) of
  +    true ->
  +      case block_supervisor:delete_block(BlockName) of
           ok -> 
  -					Result = ok;
  -				{error, Reason} -> 
  -					Result = {error, Reason}
  -			end;
  -		_ ->
  -			Result = {error, block_not_found}
  -	end,
  +          Result = ok;
  +        {error, Reason} -> 
  +          Result = {error, Reason}
  +      end;
  +    _ ->
  +      Result = {error, block_not_found}
  +  end,
     {reply, Result, State};
   
   
  
positive.code: %% ====================================================================
  %% Behavioural functions
  %% ====================================================================
  	
  
  %% ==================================================================== 
  %% init/1
  %% ====================================================================
  -spec init(Args :: term()) -> Result when
  	Result :: {ok, State}
  			| {ok, State, Timeout}
  			| {ok, State, hibernate}
  			| {stop, Reason :: term()}
  			| ignore,
  	State :: term(),
  	Timeout :: non_neg_integer() | infinity.
  
  init(null) ->
    error_logger:info_msg("Starting LinkBlox API server~n"),
  
negative.code: %% handle_info/2
  %% ====================================================================
  -spec handle_info(Info :: timeout | term(), State :: term()) -> Result when
    Result :: {noreply, NewState}
        | {noreply, NewState, Timeout}
        | {noreply, NewState, hibernate}
        | {stop, Reason :: term(), NewState},
    NewState :: term(),
    Timeout :: non_neg_integer() | infinity.
  
  
  %% =====================================================================
  