anchor.diff:  
   -include("chef_wm.hrl").
   
  --mixin([{?BASE_RESOURCE, [malformed_request/2,
  -                          service_available/2,
  +-mixin([{?BASE_RESOURCE, [content_types_provided/2,
  +                          finish_request/2,
  +                          forbidden/2,
                             is_authorized/2,
  -                          content_types_provided/2,
  +                          malformed_request/2,
                             ping/2,
  -                          finish_request/2,
  -                          forbidden/2]}]).
  +                          service_available/2]}]).
   
   %% chef_wm behavior callbacks
  --export([request_type/0,
  -         validate_request/3,
  +-export([auth_info/2,
            malformed_request_message/3,
  -         auth_info/2]).
  +         request_type/0,
  +         validate_request/3]).
   
  --export([
  -         init/1,
  -         allowed_methods/2,
  +-export([allowed_methods/2,
            content_types_accepted/2,
            create_path/2,
            from_json/2,
  +         init/1,
            post_is_create/2,
            resource_exists/2,
  -         to_json/2
  -        ]).
  +         to_json/2]).
   
   -behaviour(chef_wm).
   
  
positive.code:     Body = wrq:req_body(Req),
      {ok, Role} = chef_role:parse_binary_json(Body, create),
      {Req, State#base_state{resource_state = #role_state{role_data = Role}}}.
  
  resource_exists(Req, State) ->
      {true, Req, State}.
  
negative.code: 
  request_type() ->
      "roles".
  
  allowed_methods(Req, State) ->
      {['GET','POST'], Req, State}.
  