diff --git a/src/main/java/chocopy/pa3/CodeGenImpl.java b/src/main/java/chocopy/pa3/CodeGenImpl.java
index b2a79b63a7fdf83f56cf42685125980dad18ebe8..8b7a059d3598299dd3d54809a4a6cd538e6d6f8a 100644
--- a/src/main/java/chocopy/pa3/CodeGenImpl.java
+++ b/src/main/java/chocopy/pa3/CodeGenImpl.java
@@ -183,8 +183,6 @@ public class CodeGenImpl extends CodeGenBase {
             emitPush(tmpReg, null);
             backend.emitMV(tmpReg, SP, "Return STR OBJ address.");
         }
-
-
     }
 
     // Every function needs a register manager.
@@ -466,13 +464,8 @@ public class CodeGenImpl extends CodeGenBase {
             epilogue = generateLocalLabel();
         }
 
-        // FIXME: Example of statement.
         @Override
         public RiscVBackend.Register analyze(ReturnStmt node) {
-            // FIXME: Here, we emit an instruction that does nothing. Clearly,
-            // this is wrong, and you'll have to fix it.
-            // This is here just to demonstrate how to emit a
-            // RISC-V instruction.
             RiscVBackend.Register returnValReg = node.value.dispatch(this);
             if (returnValReg == null)
                 return null;
@@ -505,7 +498,8 @@ public class CodeGenImpl extends CodeGenBase {
 
         @Override
         public RiscVBackend.Register analyze(ExprStmt node) {
-            node.expr.dispatch(this);
+            RiscVBackend.Register ret = node.expr.dispatch(this);
+            regMgr.returnOne(ret);
             return null;
         }