diff --git a/src/extensions/scratch3_ev3/index.js b/src/extensions/scratch3_ev3/index.js
index fae830e26..b6bd1de56 100644
--- a/src/extensions/scratch3_ev3/index.js
+++ b/src/extensions/scratch3_ev3/index.js
@@ -123,6 +123,48 @@ class EV3 {
         this._bt.connectDevice(id);
     }
 
+    get distance () {
+        if (!this.connected) return;
+
+        // TODO: read distance sensor data
+        log.info(`return distance`);
+    }
+
+    get brightness () {
+        if (!this.connected) return;
+
+        // TODO: read brightness sensor data
+        log.info(`return brightness`);
+    }
+
+    getMotorPosition (args) {
+        if (!this.connected) return;
+
+        // TODO: read motor position data
+        log.info(`return motor ${args} position`);
+    }
+
+    isButtonPressed (args) {
+        if (!this.connected) return;
+
+        // TODO: read button pressed data
+        log.info(`return button ${args} pressed`);
+    }
+
+    isDistanceLessThan (args) {
+        if (!this.connected) return;
+
+        // TODO: read distance sensor data
+        log.info(`return distance less than ${args}`);
+    }
+
+    isBrightnessLessThan (args) {
+        if (!this.connected) return;
+
+        // TODO: read brightness sensor data
+        log.info(`return brightness less than ${args}`);
+    }
+
     beep () {
         if (!this.connected) return;
         this._bt.sendMessage({
@@ -183,6 +225,27 @@ class EV3 {
         });
     }
 
+    motorRotate (port, degrees) {
+        if (!this.connected) return;
+
+        // TODO: Build up motor command
+        log.info(`motor rotate port: ${port} and degrees: ${degrees}`);
+    }
+
+    motorSetPosition (port, degrees) {
+        if (!this.connected) return;
+
+        // TODO: Build up motor command
+        log.info(`motor set position port: ${port} and degrees: ${degrees}`);
+    }
+
+    motorSetPower (port, power) {
+        if (!this.connected) return;
+
+        // TODO: Build up motor command
+        log.info(`motor set power port: ${port} and degrees: ${power}`);
+    }
+
     _applyPrefix (n, cmd) {
         const len = cmd.length + 5;
         return [].concat(
@@ -493,59 +556,81 @@ class Scratch3Ev3Blocks {
     }
 
     motorTurnClockwise (args) {
-        // Validate arguments
         const port = Cast.toNumber(args.PORT);
         const time = Cast.toNumber(args.TIME) * 1000;
 
         this._device.motorTurnClockwise(port, time);
+        return;
     }
 
     motorTurnCounterClockwise (args) {
-        // Validate arguments
         const port = Cast.toNumber(args.PORT);
         const time = Cast.toNumber(args.TIME) * 1000;
 
         this._device.motorTurnCounterClockwise(port, time);
+        return;
     }
 
     motorRotate (args) {
-        log.info(`motor rotate: ${args}`);
+        const port = Cast.toNumber(args.PORT);
+        const degrees = Cast.toNumber(args.DEGREES);
+
+        this._device.motorRotate(port, degrees);
+        return;
     }
 
     motorSetPosition (args) {
-        log.info(`motor set position: ${args}`);
+        const port = Cast.toNumber(args.PORT);
+        const degrees = Cast.toNumber(args.DEGREES);
+
+        this._device.motorSetPosition(port, degrees);
+        return;
     }
 
     motorSetPower (args) {
-        log.info(`motor set power: ${args}`);
+        const port = Cast.toNumber(args.PORT);
+        const power = Cast.toNumber(args.POWER);
+
+        this._device.motorSetPower(port, power);
+        return;
     }
 
     getMotorPosition (args) {
-        log.info(`get motor position: ${args}`);
+        const port = Cast.toNumber(args.PORT);
+
+        return this._device.getMotorPosition(port);
     }
 
     whenButtonPressed (args) {
-        log.info(`when button pressed: ${args}`);
+        const port = Cast.toNumber(args.PORT);
+
+        return this._device.isButtonPressed(port);
     }
 
     whenDistanceLessThan (args) {
-        log.info(`when distance less than: ${args}`);
+        const distance = Cast.toNumber(args.DISTANCE);
+
+        return this._device.isDistanceLessThan(distance);
     }
 
     whenBrightnessLessThan (args) {
-        log.info(`when brightness less than: ${args}`);
+        const brightness = Cast.toNumber(args.DISTANCE);
+
+        return this._device.isBrightnessLessThan(brightness);
     }
 
     buttonPressed (args) {
-        log.info(`button pressed: ${args}`);
+        const port = Cast.toNumber(args.PORT);
+
+        return this._device.isButtonPressed(port);
     }
 
     getDistance () {
-        log.info(`distance`);
+        return this._device.distance;
     }
 
     getBrightness () {
-        log.info(`brightness`);
+        return this._device.brightness;
     }
 
     beep () {