diff --git a/source/EV3.m b/source/EV3.m
index 0d970ec3d56090fefd05ef2e954c84fbf7c518d9..e371dd66ab9b8d7cec88b2365f0b4fa55dd4a744 100644
--- a/source/EV3.m
+++ b/source/EV3.m
@@ -245,154 +245,42 @@ classdef EV3 < handle
             %
             % Example
             %  b = EV3(); 
-            %  b.connect('ioType', 'bt', 'serPort', '/dev/rfcomm0');
+            %  b.connect('bt', 'serPort', '/dev/rfcomm0');
             %  % do stuff
             %  b.disconnect();
             %
             
-%             if ~ev3.isConnected
-%                 error('EV3::connect: No brick connected.');
-%             end
-            
-            % Disconnect motors
-            % -> set references to brick object to 0
+            % Disconnect motors and sensors
+            % -> set references to comm handle to 0
             ev3.motorA.disconnect();
             ev3.motorB.disconnect();
             ev3.motorC.disconnect();
             ev3.motorD.disconnect();
             
-            % Disconnect sensors
-            % -> set references to brick object to 0
             ev3.sensor1.disconnect();
             ev3.sensor2.disconnect();
             ev3.sensor3.disconnect();
             ev3.sensor4.disconnect();
             
-            % Delete handle to brick object
-            if isBrickValid(ev3.brick) && ev3.brick ~= 0
-                ev3.brick.delete();
+            % Delete handle to comm-interface
+            if isCommInterfaceValid(ev3.commInterface) && ev3.commInterface ~= 0
+                ev3.commInterface.delete();
             end
-            ev3.brick = 0;
+            ev3.commInterface = 0;
             
-            ev3.isConnected = 0;
+            ev3.isConnected = false;
         end
         
-        function update(ev3)
-            %update Updates all Motors and Sensors to current status of their corresponding ports.
-            %
-            % Example
-            %  b = EV3(); 
-            %  b.connect('ioType', 'bt', 'serPort', '/dev/rfcomm0');
-            %  % Connect some new motors and sensors, disconnect some others (in 'real life')
-            %  b.update();
-            %  % Now, virtual brick knows about all new devices and commands can be sent to
-            %  % them
-            %
+        %% Device functions
+        function stopAllMotors(ev3)
+            %stopAllMotors Sends a stop-command to all motor-ports
             
             if ~ev3.isConnected
-                error('EV3::update: No brick connected.');
-            end    
-            
-            ev3.motorA.update();
-            ev3.motorB.update();
-            ev3.motorC.update();
-            ev3.motorD.update();
-            
-            ev3.sensor1.update();
-            ev3.sensor2.update();
-            ev3.sensor3.update();
-            ev3.sensor4.update();
-        end
-        
-        %% System functions
-        function syncMotor = coupleMotors(ev3, varargin)
-            %coupleMotors Creates and connects a SyncMotor-object using two chosen Motor-objects. 
-            %
-            % Notes
-            %  * Right now only possible if connection to Brick has been established.
-            %
-            % Arguments
-            %  * port ('AB','BA', ...): Motors to 'couple'
-            %  * 'useMotorParams', 0/1/'on'/'off'/'true'/'false': Use first motor's or set own params
-            %  * varargin: other Properties for Motor/SyncMotor (see
-            %                                       (Sync-)Motor::setProperties(motor, varargin))
-            %
-            % Example
-            %  b = EV3(); b.connect('ioType', 'bt', 'serPort', '/dev/rfcomm0');
-            %  sync = b.coupleMotors('AB'); % Couple motors A and B using parameters of
-            %                               % Motor-object motorA.
-            %  sync2 = b.coupleMotors('CD', 'useMotorParams', 0, 'power', 50, 'debug', 'on');
-            %                               % Couple motors C and D with new object being 
-            %                               % initialized with default resp. given parameters.
-            %
-            
-            if ~ev3.isConnected
-                error('EV3::update: No brick connected.');
-            end    
-            
-            % Check input arguments
-            p = inputParser();
-            p.KeepUnmatched = 1;
-            p.addRequired('port', @(x) isPortValid('SyncMotor', x));
-            p.addOptional('useMotorParams', 1, @(x) isBool(x));
-            p.parse(varargin{:});
-            
-            useMotorParams = str2bool(p.Results.useMotorParams);
-            if strcmpi(p.Results.port, 'AB') 
-                motor1 = ev3.motorA;
-                motor2 = ev3.motorB;
-            elseif strcmpi(p.Results.port, 'BA')
-                motor1 = ev3.motorB;
-                motor2 = ev3.motorA;
-            elseif strcmpi(p.Results.port, 'AC') 
-                motor1 = ev3.motorA;
-                motor2 = ev3.motorC;               
-            elseif strcmpi(p.Results.port, 'CA')
-                motor1 = ev3.motorC;
-                motor2 = ev3.motorA;              
-            elseif strcmpi(p.Results.port, 'AD')
-                motor1 = ev3.motorA;
-                motor2 = ev3.motorD;              
-            elseif strcmpi(p.Results.port, 'DA')
-                motor1 = ev3.motorD;
-                motor2 = ev3.motorA; 
-            elseif strcmpi(p.Results.port, 'BC')
-                motor1 = ev3.motorB;
-                motor2 = ev3.motorC;
-            elseif strcmpi(p.Results.port, 'CB')
-                motor1 = ev3.motorC;
-                motor2 = ev3.motorB;
-            elseif strcmpi(p.Results.port, 'BD')
-                motor1 = ev3.motorB;
-                motor2 = ev3.motorD;
-            elseif strcmpi(p.Results.port, 'DB')
-                motor1 = ev3.motorD;
-                motor2 = ev3.motorB;
-            elseif strcmpi(p.Results.port, 'CD')
-                motor1 = ev3.motorC;
-                motor2 = ev3.motorD;
-            elseif strcmpi(p.Results.port, 'DC')
-                motor1 = ev3.motorD;
-                motor2 = ev3.motorC;
-            end
-            
-            % Create SyncMotor-object with parameters of motor1 and given parameters
-            if useMotorParams
-                syncMotor = SyncMotor(motor1, motor2, p.Results.port, ...
-                                      'Power', motor1.power, ...
-                                      'SpeedRegulation', motor1.speedRegulation, ...
-                                      'BrakeMode', motor1.brakeMode, ...
-                                      'LimitMode', motor1.limitMode, ...
-                                      'LimitValue', motor1.limitValue, ...
-                                      'SmoothStart', motor1.smoothStart, ...
-                                      'SmoothStop', motor1.smoothStop, ...
-                                      'Debug', motor1.debug);
-            else
-                syncMotor = SyncMotor(motor1, motor2, p.Results.port, varargin{4:end});
+                stopAllMotors(['EV3::beep: Brick-Object not connected physical brick. ',...
+                       'You have to call ev3.connect(...) first!']);
             end
             
-            % Connect SyncMotor-object to brick handle.
-            syncMotor.connect(ev3.brick);
+            ev3.commInterface.outputStopAll();
         end
         
         %% Sound functions