diff --git a/ssc/ast/nodes.expressions.cs b/ssc/ast/nodes.expressions.cs
index a71d106..f992a49 100644
--- a/ssc/ast/nodes.expressions.cs
+++ b/ssc/ast/nodes.expressions.cs
@@ -118,9 +118,9 @@ namespace arookas {
 
 		public override void Compile(sunContext context) {
 			Condition.Compile(context);
-			var falsePrologue = context.Text.GotoIfZero();
+			var falsePrologue = context.Text.WriteJNE();
 			TrueBody.Compile(context);
-			var trueEpilogue = context.Text.Goto();
+			var trueEpilogue = context.Text.WriteJMP();
 			context.Text.ClosePoint(falsePrologue);
 			FalseBody.Compile(context);
 			context.Text.ClosePoint(trueEpilogue);
diff --git a/ssc/ast/nodes.flow.cs b/ssc/ast/nodes.flow.cs
index 0f0e1ee..29da2ca 100644
--- a/ssc/ast/nodes.flow.cs
+++ b/ssc/ast/nodes.flow.cs
@@ -12,11 +12,11 @@ namespace arookas {
 
 		public override void Compile(sunContext context) {
 			Condition.Compile(context);
-			var trueBodyEpilogue = context.Text.GotoIfZero();
+			var trueBodyEpilogue = context.Text.WriteJNE();
 			TrueBody.Compile(context);
 			var falseBody = FalseBody;
 			if (falseBody != null) {
-				var falseBodyEpilogue = context.Text.Goto();
+				var falseBodyEpilogue = context.Text.WriteJMP();
 				context.Text.ClosePoint(trueBodyEpilogue);
 				falseBody.Compile(context);
 				context.Text.ClosePoint(falseBodyEpilogue);
@@ -54,9 +54,9 @@ namespace arookas {
 			var bodyPrologue = context.Text.OpenPoint();
 			var continuePoint = context.Text.OpenPoint();
 			Condition.Compile(context);
-			var bodyEpilogue = context.Text.GotoIfZero();
+			var bodyEpilogue = context.Text.WriteJNE();
 			Body.Compile(context);
-			context.Text.Goto(bodyPrologue);
+			context.Text.WriteJMP(bodyPrologue);
 			context.Text.ClosePoint(bodyEpilogue);
 			var breakPoint = context.Text.OpenPoint();
 			context.Loops.Pop(context, breakPoint, continuePoint);
@@ -76,8 +76,8 @@ namespace arookas {
 			Body.Compile(context);
 			var continuePoint = context.Text.OpenPoint();
 			Condition.Compile(context);
-			var bodyEpilogue = context.Text.GotoIfZero();
-			context.Text.Goto(bodyPrologue);
+			var bodyEpilogue = context.Text.WriteJNE();
+			context.Text.WriteJMP(bodyPrologue);
 			context.Text.ClosePoint(bodyEpilogue);
 			var breakPoint = context.Text.OpenPoint();
 			context.Loops.Pop(context, breakPoint, continuePoint);
@@ -99,11 +99,11 @@ namespace arookas {
 			TryCompile(Declaration, context);
 			var bodyPrologue = context.Text.OpenPoint();
 			TryCompile(Condition, context);
-			var bodyEpilogue = context.Text.GotoIfZero();
+			var bodyEpilogue = context.Text.WriteJNE();
 			Body.Compile(context);
 			var continuePoint = context.Text.OpenPoint();
 			TryCompile(Iteration, context);
-			context.Text.Goto(bodyPrologue);
+			context.Text.WriteJMP(bodyPrologue);
 			context.Text.ClosePoint(bodyEpilogue);
 			var breakPoint = context.Text.OpenPoint();
 			context.Loops.Pop(context, breakPoint, continuePoint);
@@ -133,10 +133,10 @@ namespace arookas {
 			var expression = Expression;
 			if (expression != null) {
 				expression.Compile(context);
-				context.Text.ReturnValue();
+				context.Text.WriteRET();
 			}
 			else {
-				context.Text.ReturnVoid();
+				context.Text.WriteRET0();
 			}
 		}
 	}
@@ -149,7 +149,7 @@ namespace arookas {
 			: base(location) { }
 
 		public override void Compile(sunContext context) {
-			var point = context.Text.Goto();
+			var point = context.Text.WriteJMP();
 			if (!context.Loops.AddBreak(point, IsNamed ? NameLabel.Value : null)) {
 				throw new sunBreakException(this);
 			}
@@ -164,7 +164,7 @@ namespace arookas {
 			: base(location) { }
 
 		public override void Compile(sunContext context) {
-			var point = context.Text.Goto();
+			var point = context.Text.WriteJMP();
 			if (!context.Loops.AddContinue(point, IsNamed ? NameLabel.Value : null)) {
 				throw new sunContinueException(this);
 			}
diff --git a/ssc/ast/nodes.functions.cs b/ssc/ast/nodes.functions.cs
index 2c230c9..806667a 100644
--- a/ssc/ast/nodes.functions.cs
+++ b/ssc/ast/nodes.functions.cs
@@ -44,7 +44,7 @@ namespace arookas {
 			Arguments.Compile(context);
 			callableInfo.OpenCallSite(context, Arguments.Count);
 			if (IsStatement) {
-				context.Text.Pop();
+				context.Text.WritePOP();
 			}
 		}
 		
diff --git a/ssc/ast/nodes.literals.cs b/ssc/ast/nodes.literals.cs
index a2693d4..9105a50 100644
--- a/ssc/ast/nodes.literals.cs
+++ b/ssc/ast/nodes.literals.cs
@@ -13,7 +13,7 @@ namespace arookas {
 		protected sunIntLiteral(sunSourceLocation location)
 			: base(location) { }
 
-		public override void Compile(sunContext context) { context.Text.PushInt(Value); }
+		public override void Compile(sunContext context) { context.Text.WriteINT(Value); }
 
 		sunExpressionFlags sunTerm.GetExpressionFlags(sunContext context) {
 			return sunExpressionFlags.Literals;
@@ -42,7 +42,7 @@ namespace arookas {
 		}
 
 		public override void Compile(sunContext context) {
-			context.Text.PushFloat(Value);
+			context.Text.WriteFLT(Value);
 		}
 
 		sunExpressionFlags sunTerm.GetExpressionFlags(sunContext context) {
@@ -57,7 +57,7 @@ namespace arookas {
 		}
 
 		public override void Compile(sunContext context) {
-			context.Text.PushData(context.DataTable.Add(Value));
+			context.Text.WriteSTR(context.DataTable.Add(Value));
 		}
 
 		// string unescaping utility
diff --git a/ssc/ast/nodes.operators.cs b/ssc/ast/nodes.operators.cs
index 0e7c07a..3acdd10 100644
--- a/ssc/ast/nodes.operators.cs
+++ b/ssc/ast/nodes.operators.cs
@@ -24,7 +24,7 @@ namespace arookas {
 		public sunLogOR(sunSourceLocation location)
 			: base(location) { }
 
-		public override void Compile(sunContext context) { context.Text.LogOR(); }
+		public override void Compile(sunContext context) { context.Text.WriteOR(); }
 	}
 
 	// precedence 1
@@ -34,7 +34,7 @@ namespace arookas {
 		public sunLogAND(sunSourceLocation location)
 			: base(location) { }
 
-		public override void Compile(sunContext context) { context.Text.LogAND(); }
+		public override void Compile(sunContext context) { context.Text.WriteAND(); }
 	}
 
 	// precedence 2
@@ -44,7 +44,7 @@ namespace arookas {
 		public sunBitOR(sunSourceLocation location)
 			: base(location) { }
 
-		public override void Compile(sunContext context) { context.Text.BitOR(); }
+		public override void Compile(sunContext context) { context.Text.WriteBOR(); }
 	}
 
 	// precedence 3
@@ -54,7 +54,7 @@ namespace arookas {
 		public sunBitAND(sunSourceLocation location)
 			: base(location) { }
 
-		public override void Compile(sunContext context) { context.Text.BitAND(); }
+		public override void Compile(sunContext context) { context.Text.WriteBAND(); }
 	}
 
 	// precedence 4
@@ -64,7 +64,7 @@ namespace arookas {
 		public sunEq(sunSourceLocation location)
 			: base(location) { }
 
-		public override void Compile(sunContext context) { context.Text.Eq(); }
+		public override void Compile(sunContext context) { context.Text.WriteEQ(); }
 	}
 
 	class sunNtEq : sunOperator {
@@ -73,7 +73,7 @@ namespace arookas {
 		public sunNtEq(sunSourceLocation location)
 			: base(location) { }
 
-		public override void Compile(sunContext context) { context.Text.NtEq(); }
+		public override void Compile(sunContext context) { context.Text.WriteNE(); }
 	}
 
 	// precedence 5
@@ -83,7 +83,7 @@ namespace arookas {
 		public sunLt(sunSourceLocation location)
 			: base(location) { }
 
-		public override void Compile(sunContext context) { context.Text.Lt(); }
+		public override void Compile(sunContext context) { context.Text.WriteLT(); }
 	}
 
 	class sunLtEq : sunOperator {
@@ -92,7 +92,7 @@ namespace arookas {
 		public sunLtEq(sunSourceLocation location)
 			: base(location) { }
 
-		public override void Compile(sunContext context) { context.Text.LtEq(); }
+		public override void Compile(sunContext context) { context.Text.WriteLE(); }
 	}
 
 	class sunGt : sunOperator {
@@ -101,7 +101,7 @@ namespace arookas {
 		public sunGt(sunSourceLocation location)
 			: base(location) { }
 
-		public override void Compile(sunContext context) { context.Text.Gt(); }
+		public override void Compile(sunContext context) { context.Text.WriteGT(); }
 	}
 
 	class sunGtEq : sunOperator {
@@ -110,7 +110,7 @@ namespace arookas {
 		public sunGtEq(sunSourceLocation location)
 			: base(location) { }
 
-		public override void Compile(sunContext context) { context.Text.GtEq(); }
+		public override void Compile(sunContext context) { context.Text.WriteGE(); }
 	}
 
 	// precedence 6
@@ -120,7 +120,7 @@ namespace arookas {
 		public sunBitLsh(sunSourceLocation location)
 			: base(location) { }
 
-		public override void Compile(sunContext context) { context.Text.ShL(); }
+		public override void Compile(sunContext context) { context.Text.WriteSHL(); }
 	}
 
 	class sunBitRsh : sunOperator {
@@ -129,7 +129,7 @@ namespace arookas {
 		public sunBitRsh(sunSourceLocation location)
 			: base(location) { }
 
-		public override void Compile(sunContext context) { context.Text.ShR(); }
+		public override void Compile(sunContext context) { context.Text.WriteSHR(); }
 	}
 
 	// precedence 7
@@ -139,7 +139,7 @@ namespace arookas {
 		public sunAdd(sunSourceLocation location)
 			: base(location) { }
 
-		public override void Compile(sunContext context) { context.Text.Add(); }
+		public override void Compile(sunContext context) { context.Text.WriteADD(); }
 	}
 
 	class sunSub : sunOperator {
@@ -148,7 +148,7 @@ namespace arookas {
 		public sunSub(sunSourceLocation location)
 			: base(location) { }
 
-		public override void Compile(sunContext context) { context.Text.Sub(); }
+		public override void Compile(sunContext context) { context.Text.WriteSUB(); }
 	}
 
 	// precedence 8
@@ -158,7 +158,7 @@ namespace arookas {
 		public sunMul(sunSourceLocation location)
 			: base(location) { }
 
-		public override void Compile(sunContext context) { context.Text.Mul(); }
+		public override void Compile(sunContext context) { context.Text.WriteMUL(); }
 	}
 
 	class sunDiv : sunOperator {
@@ -167,7 +167,7 @@ namespace arookas {
 		public sunDiv(sunSourceLocation location)
 			: base(location) { }
 
-		public override void Compile(sunContext context) { context.Text.Div(); }
+		public override void Compile(sunContext context) { context.Text.WriteDIV(); }
 	}
 
 	class sunMod : sunOperator {
@@ -176,7 +176,7 @@ namespace arookas {
 		public sunMod(sunSourceLocation location)
 			: base(location) { }
 
-		public override void Compile(sunContext context) { context.Text.Mod(); }
+		public override void Compile(sunContext context) { context.Text.WriteMOD(); }
 	}
 
 	// precedence 9
@@ -186,7 +186,7 @@ namespace arookas {
 		public sunLogNOT(sunSourceLocation location)
 			: base(location) { }
 
-		public override void Compile(sunContext context) { context.Text.LogNOT(); }
+		public override void Compile(sunContext context) { context.Text.WriteNOT(); }
 	}
 	class sunNeg : sunOperator {
 		public override int Precedence { get { return 9; } }
@@ -194,7 +194,7 @@ namespace arookas {
 		public sunNeg(sunSourceLocation location)
 			: base(location) { }
 
-		public override void Compile(sunContext context) { context.Text.Neg(); }
+		public override void Compile(sunContext context) { context.Text.WriteNEG(); }
 	}
 
 	// assignment operators
@@ -218,7 +218,7 @@ namespace arookas {
 		public override void Compile(sunContext context, sunStorableSymbol symbol, sunExpression expression) {
 			symbol.CompileGet(context);
 			expression.Compile(context);
-			context.Text.Add();
+			context.Text.WriteADD();
 			symbol.CompileSet(context);
 		}
 	}
@@ -230,7 +230,7 @@ namespace arookas {
 		public override void Compile(sunContext context, sunStorableSymbol symbol, sunExpression expression) {
 			symbol.CompileGet(context);
 			expression.Compile(context);
-			context.Text.Sub();
+			context.Text.WriteSUB();
 			symbol.CompileSet(context);
 		}
 	}
@@ -242,7 +242,7 @@ namespace arookas {
 		public override void Compile(sunContext context, sunStorableSymbol symbol, sunExpression expression) {
 			symbol.CompileGet(context);
 			expression.Compile(context);
-			context.Text.Mul();
+			context.Text.WriteMUL();
 			symbol.CompileSet(context);
 		}
 	}
@@ -254,7 +254,7 @@ namespace arookas {
 		public override void Compile(sunContext context, sunStorableSymbol symbol, sunExpression expression) {
 			symbol.CompileGet(context);
 			expression.Compile(context);
-			context.Text.Div();
+			context.Text.WriteDIV();
 			symbol.CompileSet(context);
 		}
 	}
@@ -266,7 +266,7 @@ namespace arookas {
 		public override void Compile(sunContext context, sunStorableSymbol symbol, sunExpression expression) {
 			symbol.CompileGet(context);
 			expression.Compile(context);
-			context.Text.Mod();
+			context.Text.WriteMOD();
 			symbol.CompileSet(context);
 		}
 	}
@@ -278,7 +278,7 @@ namespace arookas {
 		public override void Compile(sunContext context, sunStorableSymbol symbol, sunExpression expression) {
 			symbol.CompileGet(context);
 			expression.Compile(context);
-			context.Text.BitAND();
+			context.Text.WriteBAND();
 			symbol.CompileSet(context);
 		}
 	}
@@ -290,7 +290,7 @@ namespace arookas {
 		public override void Compile(sunContext context, sunStorableSymbol symbol, sunExpression expression) {
 			symbol.CompileGet(context);
 			expression.Compile(context);
-			context.Text.BitOR();
+			context.Text.WriteBOR();
 			symbol.CompileSet(context);
 		}
 	}
@@ -302,7 +302,7 @@ namespace arookas {
 		public override void Compile(sunContext context, sunStorableSymbol symbol, sunExpression expression) {
 			symbol.CompileGet(context);
 			expression.Compile(context);
-			context.Text.ShL();
+			context.Text.WriteSHL();
 			symbol.CompileSet(context);
 		}
 	}
@@ -314,7 +314,7 @@ namespace arookas {
 		public override void Compile(sunContext context, sunStorableSymbol symbol, sunExpression expression) {
 			symbol.CompileGet(context);
 			expression.Compile(context);
-			context.Text.ShR();
+			context.Text.WriteSHR();
 			symbol.CompileSet(context);
 		}
 	}
diff --git a/ssc/ast/nodes.system.cs b/ssc/ast/nodes.system.cs
index 04f3d9a..ecae703 100644
--- a/ssc/ast/nodes.system.cs
+++ b/ssc/ast/nodes.system.cs
@@ -5,8 +5,8 @@
 
 		public override void Compile(sunContext context) {
 			var builtinInfo = context.ResolveSystemBuiltin("yield");
-			context.Text.CallBuiltin(builtinInfo.Index, 0);
-			context.Text.Pop();
+			context.Text.WriteFUNC(builtinInfo.Index, 0);
+			context.Text.WritePOP();
 		}
 	}
 
@@ -16,8 +16,8 @@
 
 		public override void Compile(sunContext context) {
 			var builtinInfo = context.ResolveSystemBuiltin("exit");
-			context.Text.CallBuiltin(builtinInfo.Index, 0);
-			context.Text.Pop();
+			context.Text.WriteFUNC(builtinInfo.Index, 0);
+			context.Text.WritePOP();
 		}
 	}
 
@@ -27,8 +27,8 @@
 
 		public override void Compile(sunContext context) {
 			var builtinInfo = context.ResolveSystemBuiltin("dump");
-			context.Text.CallBuiltin(builtinInfo.Index, 0);
-			context.Text.Pop();
+			context.Text.WriteFUNC(builtinInfo.Index, 0);
+			context.Text.WritePOP();
 		}
 	}
 
@@ -38,8 +38,8 @@
 
 		public override void Compile(sunContext context) {
 			var builtinInfo = context.ResolveSystemBuiltin("lock");
-			context.Text.CallBuiltin(builtinInfo.Index, 0);
-			context.Text.Pop();
+			context.Text.WriteFUNC(builtinInfo.Index, 0);
+			context.Text.WritePOP();
 		}
 	}
 
@@ -49,8 +49,8 @@
 
 		public override void Compile(sunContext context) {
 			var builtinInfo = context.ResolveSystemBuiltin("unlock");
-			context.Text.CallBuiltin(builtinInfo.Index, 0);
-			context.Text.Pop();
+			context.Text.WriteFUNC(builtinInfo.Index, 0);
+			context.Text.WritePOP();
 		}
 	}
 
@@ -62,7 +62,7 @@
 
 		protected void Compile(sunContext context, sunBuiltinSymbol symbol) {
 			Argument.Compile(context);
-			context.Text.CallBuiltin(symbol.Index, 1);
+			context.Text.WriteFUNC(symbol.Index, 1);
 		}
 
 		sunExpressionFlags sunTerm.GetExpressionFlags(sunContext context) {
@@ -106,8 +106,8 @@
 		public override void Compile(sunContext context) {
 			var builtinInfo = context.ResolveSystemBuiltin("print");
 			ArgumentList.Compile(context);
-			context.Text.CallBuiltin(builtinInfo.Index, ArgumentList.Count);
-			context.Text.Pop();
+			context.Text.WriteFUNC(builtinInfo.Index, ArgumentList.Count);
+			context.Text.WritePOP();
 		}
 	}
 }
diff --git a/ssc/compiler.cs b/ssc/compiler.cs
index fcc3ad9..efe1a41 100644
--- a/ssc/compiler.cs
+++ b/ssc/compiler.cs
@@ -26,7 +26,7 @@ namespace arookas {
 				if (result != sunImportResult.Loaded) {
 					throw new sunImportException(name, result);
 				}
-				context.Text.Terminate(); // NOTETOSELF: don't do this via sunNode.Compile because imported files will add this as well
+				context.Text.WriteEND(); // NOTETOSELF: don't do this via sunNode.Compile because imported files will add this as well
 				foreach (var function in context.SymbolTable.Functions) {
 					function.Compile(context);
 				}
diff --git a/ssc/symbol table.cs b/ssc/symbol table.cs
index 426f343..a41cb51 100644
--- a/ssc/symbol table.cs	
+++ b/ssc/symbol table.cs	
@@ -99,7 +99,7 @@ namespace arookas {
 			throw new InvalidOperationException("Cannot compile builtins.");
 		}
 		public override void OpenCallSite(sunContext context, int argumentCount) {
-			context.Text.CallBuiltin(Index, argumentCount);
+			context.Text.WriteFUNC(Index, argumentCount);
 		}
 		public override void CloseCallSites(sunContext context) { }
 	}
@@ -124,14 +124,14 @@ namespace arookas {
 			foreach (var parameter in Parameters) {
 				context.Scopes.DeclareVariable(parameter); // since there is no AST node for these, they won't affect MaxLocalCount
 			}
-			context.Text.StoreDisplay(1);
-			context.Text.DeclareLocal(Body.MaxLocalCount);
+			context.Text.WriteMKDS(1);
+			context.Text.WriteMKFR(Body.MaxLocalCount);
 			Body.Compile(context);
-			context.Text.ReturnVoid();
+			context.Text.WriteRET0();
 			context.Scopes.Pop();
 		}
 		public override void OpenCallSite(sunContext context, int argumentCount) {
-			var point = context.Text.CallFunction(argumentCount);
+			var point = context.Text.WriteCALL(argumentCount);
 			CallSites.Add(point);
 		}
 		public override void CloseCallSites(sunContext context) {
@@ -178,13 +178,13 @@ namespace arookas {
 		public abstract void CompileSet(sunContext context);
 		public virtual void CompileInc(sunContext context) {
 			CompileGet(context);
-			context.Text.PushInt(1);
-			context.Text.Add();
+			context.Text.WriteINT(1);
+			context.Text.WriteADD();
 		}
 		public virtual void CompileDec(sunContext context) {
 			CompileGet(context);
-			context.Text.PushInt(1);
-			context.Text.Sub();
+			context.Text.WriteINT(1);
+			context.Text.WriteSUB();
 		}
 	}
 
@@ -202,10 +202,10 @@ namespace arookas {
 			Index = index;
 		}
 
-		public override void CompileGet(sunContext context) { context.Text.PushVariable(Display, Index); }
-		public override void CompileSet(sunContext context) { context.Text.StoreVariable(Display, Index); }
-		public override void CompileInc(sunContext context) { context.Text.IncVariable(Display, Index); }
-		public override void CompileDec(sunContext context) { context.Text.DecVariable(Display, Index); }
+		public override void CompileGet(sunContext context) { context.Text.WriteVAR(Display, Index); }
+		public override void CompileSet(sunContext context) { context.Text.WriteASS(Display, Index); }
+		public override void CompileInc(sunContext context) { context.Text.WriteINC(Display, Index); }
+		public override void CompileDec(sunContext context) { context.Text.WriteDEC(Display, Index); }
 	}
 
 	class sunConstantSymbol : sunStorableSymbol {
diff --git a/ssc/writer.cs b/ssc/writer.cs
index c89e3a2..f37c710 100644
--- a/ssc/writer.cs
+++ b/ssc/writer.cs
@@ -2,153 +2,143 @@
 
 namespace arookas {
 	class sunWriter {
-		aBinaryWriter writer;
+		aBinaryWriter mWriter;
 
-		public uint Offset { get { return (uint)writer.Position; } }
+		public uint Offset { get { return (uint)mWriter.Position; } }
 
 		public sunWriter(aBinaryWriter writer) {
-			this.writer = writer;
+			this.mWriter = writer;
 		}
 
 		public sunPoint OpenPoint() { return new sunPoint(Offset); }
-		public void ClosePoint(sunPoint point) { ClosePoint(point, (uint)writer.Position); }
+		public void ClosePoint(sunPoint point) { ClosePoint(point, (uint)mWriter.Position); }
 		public void ClosePoint(sunPoint point, uint offset) {
-			writer.Keep();
-			writer.Goto(point.Offset);
-			writer.Write32(offset);
-			writer.Back();
+			mWriter.Keep();
+			mWriter.Goto(point.Offset);
+			mWriter.Write32(offset);
+			mWriter.Back();
 		}
 
-		public void PushInt(int value) {
+		public void WriteINT(int value) {
 			switch (value) { // shortcut commands
-				case 0: writer.Write8(0x25); return;
-				case 1: writer.Write8(0x26); return;
+				case 0: WriteINT0(); return;
+				case 1: WriteINT1(); return;
 			}
-			writer.Write8(0x00);
-			writer.WriteS32(value);
+			mWriter.Write8(0x00);
+			mWriter.WriteS32(value);
 		}
-		public void PushFloat(float value) {
-			writer.Write8(0x01);
-			writer.WriteF32(value);
+		public void WriteFLT(float value) {
+			mWriter.Write8(0x01);
+			mWriter.WriteF32(value);
 		}
-		public void PushData(int dataIndex) {
-			writer.Write8(0x02);
-			writer.WriteS32(dataIndex);
+		public void WriteSTR(int index) {
+			mWriter.Write8(0x02);
+			mWriter.WriteS32(index);
 		}
-		public void PushAddress(int value) {
-			writer.Write8(0x03);
-			writer.WriteS32(value);
+		public void WriteADR(int value) {
+			mWriter.Write8(0x03);
+			mWriter.WriteS32(value);
 		}
-		public void PushVariable(sunVariableSymbol variableInfo) { PushVariable(variableInfo.Display, variableInfo.Index); }
-		public void PushVariable(int display, int variableIndex) {
-			writer.Write8(0x04);
-			writer.WriteS32(display);
-			writer.WriteS32(variableIndex);
+		public void WriteVAR(int display, int index) {
+			mWriter.Write8(0x04);
+			mWriter.WriteS32(display);
+			mWriter.WriteS32(index);
 		}
-		public void Nop() { writer.Write8(0x05); }
-		public void IncVariable(sunVariableSymbol variableInfo) { IncVariable(variableInfo.Display, variableInfo.Index); }
-		public void DecVariable(sunVariableSymbol variableInfo) { DecVariable(variableInfo.Display, variableInfo.Index); }
-		public void IncVariable(int display, int variableIndex) {
-			writer.Write8(0x06);
-			writer.WriteS32(display);
-			writer.WriteS32(variableIndex);
+		public void WriteNOP() { mWriter.Write8(0x05); }
+		public void WriteINC(int display, int index) {
+			mWriter.Write8(0x06);
+			mWriter.WriteS32(display);
+			mWriter.WriteS32(index);
 		}
-		public void DecVariable(int display, int variableIndex) {
-			writer.Write8(0x07);
-			writer.WriteS32(display);
-			writer.WriteS32(variableIndex);
+		public void WriteDEC(int display, int index) {
+			mWriter.Write8(0x07);
+			mWriter.WriteS32(display);
+			mWriter.WriteS32(index);
 		}
-
-		public void Add() { writer.Write8(0x08); }
-		public void Sub() { writer.Write8(0x09); }
-		public void Mul() { writer.Write8(0x0A); }
-		public void Div() { writer.Write8(0x0B); }
-		public void Mod() { writer.Write8(0x0C); }
-
-		public void StoreVariable(sunVariableSymbol variableInfo) { StoreVariable(variableInfo.Display, variableInfo.Index); }
-		public void StoreVariable(int display, int variableIndex) {
-			writer.Write8(0x0D);
-			writer.Write8(0x04); // unused (skipped over by TSpcInterp)
-			writer.WriteS32(display);
-			writer.WriteS32(variableIndex);
+		public void WriteADD() { mWriter.Write8(0x08); }
+		public void WriteSUB() { mWriter.Write8(0x09); }
+		public void WriteMUL() { mWriter.Write8(0x0A); }
+		public void WriteDIV() { mWriter.Write8(0x0B); }
+		public void WriteMOD() { mWriter.Write8(0x0C); }
+		public void WriteASS(int display, int index) {
+			mWriter.Write8(0x0D);
+			mWriter.Write8(0x04); // unused (skipped over by TSpcInterp)
+			mWriter.WriteS32(display);
+			mWriter.WriteS32(index);
 		}
-
-		public void Eq() { writer.Write8(0x0E); }
-		public void NtEq() { writer.Write8(0x0F); }
-		public void Gt() { writer.Write8(0x10); }
-		public void Lt() { writer.Write8(0x11); }
-		public void GtEq() { writer.Write8(0x12); }
-		public void LtEq() { writer.Write8(0x13); }
-		public void Neg() { writer.Write8(0x14); }
-		public void LogNOT() { writer.Write8(0x15); }
-		public void LogAND() { writer.Write8(0x16); }
-		public void LogOR() { writer.Write8(0x17); }
-		public void BitAND() { writer.Write8(0x18); }
-		public void BitOR() { writer.Write8(0x19); }
-		public void ShL() { writer.Write8(0x1A); }
-		public void ShR() { writer.Write8(0x1B); }
-
-		public sunPoint CallFunction(int argumentCount) {
-			writer.Write8(0x1C);
+		public void WriteEQ() { mWriter.Write8(0x0E); }
+		public void WriteNE() { mWriter.Write8(0x0F); }
+		public void WriteGT() { mWriter.Write8(0x10); }
+		public void WriteLT() { mWriter.Write8(0x11); }
+		public void WriteGE() { mWriter.Write8(0x12); }
+		public void WriteLE() { mWriter.Write8(0x13); }
+		public void WriteNEG() { mWriter.Write8(0x14); }
+		public void WriteNOT() { mWriter.Write8(0x15); }
+		public void WriteAND() { mWriter.Write8(0x16); }
+		public void WriteOR() { mWriter.Write8(0x17); }
+		public void WriteBAND() { mWriter.Write8(0x18); }
+		public void WriteBOR() { mWriter.Write8(0x19); }
+		public void WriteSHL() { mWriter.Write8(0x1A); }
+		public void WriteSHR() { mWriter.Write8(0x1B); }
+		public sunPoint WriteCALL(int count) {
+			mWriter.Write8(0x1C);
 			sunPoint point = OpenPoint();
-			writer.Write32(0); // dummy
-			writer.WriteS32(argumentCount);
+			mWriter.Write32(0); // dummy
+			mWriter.WriteS32(count);
 			return point;
 		}
-		public void CallFunction(sunPoint point, int argumentCount) {
-			writer.Write8(0x1C);
-			writer.Write32(point.Offset);
-			writer.WriteS32(argumentCount);
+		public void WriteCALL(sunPoint point, int count) {
+			mWriter.Write8(0x1C);
+			mWriter.Write32(point.Offset);
+			mWriter.WriteS32(count);
 		}
-		public void CallBuiltin(int symbolIndex, int argumentCount) {
-			writer.Write8(0x1D);
-			writer.WriteS32(symbolIndex);
-			writer.WriteS32(argumentCount);
+		public void WriteFUNC(int index, int count) {
+			mWriter.Write8(0x1D);
+			mWriter.WriteS32(index);
+			mWriter.WriteS32(count);
 		}
-
-		public void DeclareLocal(int count) {
-			writer.Write8(0x1E);
-			writer.WriteS32(count);
+		public void WriteMKFR(int count) {
+			mWriter.Write8(0x1E);
+			mWriter.WriteS32(count);
 		}
-		public void StoreDisplay(int display) {
-			writer.Write8(0x1F);
-			writer.WriteS32(display);
+		public void WriteMKDS(int display) {
+			mWriter.Write8(0x1F);
+			mWriter.WriteS32(display);
 		}
-
-		public void ReturnValue() { writer.Write8(0x20); }
-		public void ReturnVoid() { writer.Write8(0x21); }
-
-		public sunPoint GotoIfZero() {
-			writer.Write8(0x22);
+		public void WriteRET() { mWriter.Write8(0x20); }
+		public void WriteRET0() { mWriter.Write8(0x21); }
+		public sunPoint WriteJNE() {
+			mWriter.Write8(0x22);
 			sunPoint point = OpenPoint();
-			writer.Write32(0); // dummy
+			mWriter.Write32(0); // dummy
 			return point;
 		}
-		public sunPoint Goto() {
-			writer.Write8(0x23);
+		public sunPoint WriteJMP() {
+			mWriter.Write8(0x23);
 			sunPoint point = OpenPoint();
-			writer.Write32(0); // dummy
+			mWriter.Write32(0); // dummy
 			return point;
 		}
-		public void GotoIfZero(sunPoint point) {
-			writer.Write8(0x22);
-			writer.Write32(point.Offset);
+		public void WriteJNE(sunPoint point) {
+			mWriter.Write8(0x22);
+			mWriter.Write32(point.Offset);
 		}
-		public void Goto(sunPoint point) {
-			writer.Write8(0x23);
-			writer.Write32(point.Offset);
+		public void WriteJMP(sunPoint point) {
+			mWriter.Write8(0x23);
+			mWriter.Write32(point.Offset);
 		}
-		public void Pop() { writer.Write8(0x24); }
-
-		public void Terminate() { writer.Write8(0x27); }
+		public void WritePOP() { mWriter.Write8(0x24); }
+		public void WriteINT0() { mWriter.Write8(0x25); }
+		public void WriteINT1() { mWriter.Write8(0x26); }
+		public void WriteEND() { mWriter.Write8(0x27); }
 	}
 
 	struct sunPoint {
-		readonly uint offset;
-		public uint Offset { get { return offset; } }
+		readonly uint mOffset;
+		public uint Offset { get { return mOffset; } }
 
 		public sunPoint(uint offset) {
-			this.offset = offset;
+			mOffset = offset;
 		}
 	}
 }