diff --git a/src/propeller/problems/PSB2/camel_case.cljc b/src/propeller/problems/PSB2/camel_case.cljc
index 99b20be..ba80c6b 100644
--- a/src/propeller/problems/PSB2/camel_case.cljc
+++ b/src/propeller/problems/PSB2/camel_case.cljc
@@ -78,19 +78,14 @@
                            (:step-limit argmap))
                          :string))
                      inputs)
-        parsed-outputs (map (fn [output]
-                              (try (read-string output)
-                                   #?(:clj  (catch Exception e 1000.0)
-                                      :cljs (catch js/Error. e 1000.0))))
-                            outputs)
         errors (map (fn [correct-output output]
                       (if (= output :no-stack-item)
                         10000
                         (metrics/levenshtein-distance correct-output output)))
                     correct-outputs
-                    parsed-outputs)]
+                    outputs)]
     (assoc individual
-      :behaviors parsed-outputs
+      :behaviors outputs
       :errors errors
       :total-error #?(:clj  (apply +' errors)
                       :cljs (apply + errors)))))
diff --git a/src/propeller/problems/PSB2/fizz_buzz.cljc b/src/propeller/problems/PSB2/fizz_buzz.cljc
index 4b892e7..ee1f536 100644
--- a/src/propeller/problems/PSB2/fizz_buzz.cljc
+++ b/src/propeller/problems/PSB2/fizz_buzz.cljc
@@ -46,19 +46,14 @@
                             (:step-limit argmap))
                           :string))
                       inputs)
-         parsed-outputs (map (fn [output]
-                               (try (read-string output)
-                                    #?(:clj (catch Exception e 1000.0)
-                                       :cljs (catch js/Error. e 1000.0))))
-                             outputs)
          errors (map (fn [correct-output output]
                        (if (= output :no-stack-item)
                          10000
-                         (metrics/levenshtein-distance (str correct-output) (str output))))
+                         (metrics/levenshtein-distance correct-output output)))
                      correct-outputs
-                     parsed-outputs)]
+                     outputs)]
      (assoc individual
-       :behaviors parsed-outputs
+       :behaviors outputs
        :errors errors
        :total-error #?(:clj  (apply +' errors)
                        :cljs (apply + errors)))))
diff --git a/src/propeller/problems/PSB2/middle_character.cljc b/src/propeller/problems/PSB2/middle_character.cljc
index f9a4b18..a665d9b 100644
--- a/src/propeller/problems/PSB2/middle_character.cljc
+++ b/src/propeller/problems/PSB2/middle_character.cljc
@@ -47,19 +47,14 @@
                            (:step-limit argmap))
                          :string))
                      inputs)
-        parsed-outputs (map (fn [output]
-                              (try (read-string output)
-                                   #?(:clj  (catch Exception e 1000.0)
-                                      :cljs (catch js/Error. e 1000.0))))
-                            outputs)
         errors (map (fn [correct-output output]
                       (if (= output :no-stack-item)
                         10000
-                        (metrics/levenshtein-distance (str correct-output) (str output))))
+                        (metrics/levenshtein-distance correct-output output)))
                     correct-outputs
-                    parsed-outputs)]
+                    outputs)]
     (assoc individual
-      :behaviors parsed-outputs
+      :behaviors outputs
       :errors errors
       :total-error #?(:clj  (apply +' errors)
                       :cljs (apply + errors)))))
diff --git a/src/propeller/problems/PSB2/spin_words.cljc b/src/propeller/problems/PSB2/spin_words.cljc
index 5698f7a..b25386a 100644
--- a/src/propeller/problems/PSB2/spin_words.cljc
+++ b/src/propeller/problems/PSB2/spin_words.cljc
@@ -74,19 +74,14 @@
                            (:step-limit argmap))
                          :string))
                      inputs)
-        parsed-outputs (map (fn [output]
-                              (try (read-string output)
-                                   #?(:clj  (catch Exception e 1000.0)
-                                      :cljs (catch js/Error. e 1000.0))))
-                            outputs)
         errors (map (fn [correct-output output]
                       (if (= output :no-stack-item)
                         10000
                         (metrics/levenshtein-distance correct-output output)))
                     correct-outputs
-                    parsed-outputs)]
+                    outputs)]
     (assoc individual
-      :behaviors parsed-outputs
+      :behaviors outputs
       :errors errors
       :total-error #?(:clj  (apply +' errors)
                       :cljs (apply + errors)))))
diff --git a/src/propeller/problems/PSB2/square_digits.cljc b/src/propeller/problems/PSB2/square_digits.cljc
index bc3bc61..76b1a24 100644
--- a/src/propeller/problems/PSB2/square_digits.cljc
+++ b/src/propeller/problems/PSB2/square_digits.cljc
@@ -46,19 +46,14 @@
                            (:step-limit argmap))
                          :string))
                      inputs)
-        parsed-outputs (map (fn [output]
-                              (try (read-string output)
-                                   #?(:clj (catch Exception e 1000.0)
-                                      :cljs (catch js/Error. e 1000.0))))
-                            outputs)
         errors (map (fn [correct-output output]
                       (if (= output :no-stack-item)
                         10000
-                        (metrics/levenshtein-distance (str correct-output) (str output))))
+                        (metrics/levenshtein-distance correct-output output)))
                     correct-outputs
-                    parsed-outputs)]
+                    outputs)]
     (assoc individual
-      :behaviors parsed-outputs
+      :behaviors outputs
       :errors errors
       :total-error #?(:clj  (apply +' errors)
                       :cljs (apply + errors)))))
diff --git a/src/propeller/problems/PSB2/substitution_cipher.cljc b/src/propeller/problems/PSB2/substitution_cipher.cljc
index 3f83e64..f6b5d49 100644
--- a/src/propeller/problems/PSB2/substitution_cipher.cljc
+++ b/src/propeller/problems/PSB2/substitution_cipher.cljc
@@ -59,19 +59,14 @@
                            (:step-limit argmap))
                          :string))
                      inputs)
-        parsed-outputs (map (fn [output]
-                              (try (read-string output)
-                                   #?(:clj  (catch Exception e 1000.0)
-                                      :cljs (catch js/Error. e 1000.0))))
-                            outputs)
         errors (map (fn [correct-output output]
                       (if (= output :no-stack-item)
                         10000
-                        (metrics/levenshtein-distance (str correct-output) (str output))))
+                        (metrics/levenshtein-distance correct-output output)))
                     correct-outputs
-                    parsed-outputs)]
+                    outputs)]
     (assoc individual
-      :behaviors parsed-outputs
+      :behaviors outputs
       :errors errors
       :total-error #?(:clj  (apply +' errors)
                       :cljs (apply + errors)))))
diff --git a/src/propeller/problems/PSB2/twitter.cljc b/src/propeller/problems/PSB2/twitter.cljc
index 3d70851..95273e2 100644
--- a/src/propeller/problems/PSB2/twitter.cljc
+++ b/src/propeller/problems/PSB2/twitter.cljc
@@ -50,19 +50,14 @@
                            (:step-limit argmap))
                          :string))
                      inputs)
-        parsed-outputs (map (fn [output]
-                              (try (read-string output)
-                                   #?(:clj  (catch Exception e 1000.0)
-                                      :cljs (catch js/Error. e 1000.0))))
-                            outputs)
         errors (map (fn [correct-output output]
                       (if (= output :no-stack-item)
                         10000
-                        (metrics/levenshtein-distance (str correct-output) (str output))))
+                        (metrics/levenshtein-distance correct-output output)))
                     correct-outputs
-                    parsed-outputs)]
+                    outputs)]
     (assoc individual
-      :behaviors parsed-outputs
+      :behaviors outputs
       :errors errors
       :total-error #?(:clj  (apply +' errors)
                       :cljs (apply + errors)))))
diff --git a/src/propeller/push/instructions/numeric.cljc b/src/propeller/push/instructions/numeric.cljc
index 2000771..059e781 100755
--- a/src/propeller/push/instructions/numeric.cljc
+++ b/src/propeller/push/instructions/numeric.cljc
@@ -121,9 +121,13 @@
     :name "_from_string"}
   (fn [stack state]
     (make-instruction state
-                      #(try ((if (= stack :integer) int float) (read-string %))
-                            #?(:clj (catch Exception e)
-                               :cljs (catch js/Error. e)))
+                      #(try (if (= stack :integer)
+                             #?(:clj (Integer/parseInt %)
+                                :cljs (js/parseInt %)) 
+                             #?(:clj (Float/parseFloat %) 
+                                :cljs (js/parseFloat %)))
+                            #?(:clj (catch Exception e :ignore-instruction)
+                               :cljs (catch js/Error e :ignore-instruction)))
                       [:string]
                       stack)))