 	'9': digitPusher 9
 
 
-	'+': binaryOperator ((o1, o2) -> o1 + o2), '+', (o1, o2) -> "(#{o1} + #{o2})"
-	'-': binaryOperator ((o1, o2) -> o2 - o1), '-', (o1, o2) -> "(-#{o1} + #{o2})"
-	'*': binaryOperator ((o1, o2) -> o1 * o2), '*', (o1, o2) -> "(#{o1} * #{o2})"
+	'+': binaryOperator ((o1, o2) -> o2 + o1), '+', (o1, o2) -> "(#{o2} + #{o1})"
+	'-': binaryOperator ((o1, o2) -> o2 - o1), '-', (o1, o2) -> "(#{o2} - #{o1})"
+	'*': binaryOperator ((o1, o2) -> o2 * o1), '*', (o1, o2) -> "(#{o2} * #{o1})"
 	'/': binaryOperator ((o1, o2) -> o2 // o1), '/', (o1, o2) -> "Math.floor(#{o2} / #{o1})"
 	'%': binaryOperator ((o1, o2) -> o2 % o1), '%', (o1, o2) -> "(#{o2} % #{o1})"
 
 
 	'!': (x, y, dir, index, stack) ->
-		stack.push "(+!#{stack.popish()})"
+		stack.push "(+!#{stack.pop()})"
 		return
 
 



	'\\': (x, y, dir, index, stack) ->
		e1 = stack.popish()
		e2 = stack.popish()
		stack.push e1, e2
		return


	'$': (x, y, dir, index, stack) ->
		stack.popish()
		return


	'.': (x, y, dir, index, stack) ->
		stack.out("programState.out(#{stack.popish()})")
		return


	',': (x, y, dir, index, stack) ->
		stack.out("programState.out(String.fromCharCode(#{stack.popish()}))")
		return




	'p': (x, y, dir, index, stack, from, to) ->
		stack.dump()
		stack.pushChunk """
			programState.put(
				#{stack.pop()},
				#{stack.pop()},
				#{stack.pop()},
				#{x}, #{y}, '#{dir}', #{index},
				'#{from}', '#{to}'
			)
