anchor.diff:      { ok, _ } = start( fun() -> { ok, make_ref() } end ),
       ok = setup_meck(),
       meck:expect( lurch_device, start,
  -        fun( _, _, _, _ ) -> { ok, make_ref() } end
  +        fun( _, _, _, _ ) ->
  +            Id = make_ref(),
  +            whereis( lurch_devman ) !
  +            { start, { ok, [ { os_pid, 123 } ] }, Id },
  +            { ok, Id }
  +        end
       ),
       meck:expect( lurch_device, stop, 1, ok ).
   
  
positive.code: 
  test_start_response( ok ) ->
      Id = make_ref(),
      Device = #device{ id = Id },
      Devices = orddict:store( Id, Device, orddict:new() ),
      S0 = #state{ devices = Devices },
  
  
negative.code:     , { os_pid, Device#device.os_pid }
      ].
  
  handle_start( { ok, Info }, DeviceId, State ) ->
      Device = orddict:fetch( DeviceId, State#state.devices ),
      gen_server:reply( Device#device.started_by, { ok, DeviceId } ),
  
      UpdateDeviceFun = fun( D ) ->
          D#device{
            state = running,
            os_pid = proplists:get_value( os_pid, Info )
          }
      end,
      Devices = orddict:update(
          DeviceId,
          UpdateDeviceFun,
          State#state.devices
      ),
      State#state{ devices = Devices };
  
  handle_start( { error, _ } = Error, DeviceId, State ) ->
      % FIXME - log
      Device = orddict:fetch( DeviceId, State#state.devices ),
      gen_server:reply( Device#device.started_by, Error ),
      Devices = orddict:update(
          DeviceId,
          fun( D ) -> D#device{ state = crashed } end,
          State#state.devices
      ),
      State#state{ devices = Devices }.
  
  handle_stop( shutdown, DeviceId, State ) ->
      Devices = orddict:erase( DeviceId, State#state.devices ),
  