anchor.diff:  %%	
   -spec delete(BlockValues :: block_state()) -> block_defn().
   
  -delete({Config, Inputs, Outputs, _Private}) -> 
  -  % INSTRUCTIONS: Perform any block type specific delete functionality here
  -  % Return block definition, (Block state - Private values)
  -  % in case calling function wants to reuse them.
  -  %
  -  % Private values are created in the block initialization routine
  -  % So they should be deleted here
  -  
  +delete({Config, Inputs, Outputs, Private}) -> 
  + 
  +  case attrib_utils:get_value(Private, i2c_ref) of
  +    {ok, I2cRef} ->
  +      shutdown_lcd(I2cRef),
  +
  +      % Close the I2C Channel
  +      i2c:stop(I2cRef);
  +
  +    _ -> ok
  +  end,
     {Config, Inputs, Outputs}.
   
   
  
positive.code: %
  % Entry Mode Set command params
  %
  -define(INCREMENT, 16#01).
  -define(DECREMENT, 16#00).
  
  -define(SHIFT, 16#02). 
  -define(NO_SHIFT, 16#00). 
  
  %
  
negative.code: 
    {ok, I2cRef} = attrib_utils:get_value(Private, i2c_ref),
  
    case update_lcd_control(I2cRef, Inputs) of
      % Clear screen input is off
      {false, Backlight} ->
        {ok, NumOfInputs} = attrib_utils:get_value(Config, num_of_inputs),
  
        {Value, Status} = update_lcd_data(I2cRef, Backlight, Config, Inputs, NumOfInputs);
  
      % Clear screen input is on, don't write anything to screen  
      {true, _} ->
        Value = "",
        Status = normal
    end,
     
    Outputs1 = output_utils:set_value_status(Outputs, Value, Status),
  
  