diff --git a/README.md b/README.md
index d41f8093b86e8560966f381506d24de52fd7207f..c1c983d76e44100eec0c5b4c593f1f12267d8d30 100644
--- a/README.md
+++ b/README.md
@@ -2,6 +2,8 @@
 
 ## Author
 
+Brandon Rodriguez
+
 ## Description
 
 Create a temperature converter application.
@@ -30,6 +32,20 @@ The book does not cover how to do work with Radio Buttons. I will talk about it
 http://javatechig.com/android/android-radio-button-example
 * Determined the equivalent of OnClickListener for radio buttons.
 
+http://stackoverflow.com/questions/7543835/configure-android-edittext-to-allow-decimals-and-negatives
+* Accepting both negative numbers and decimals in user text input.
+
+https://en.wikipedia.org/wiki/Conversion_of_units_of_temperature
+* Found all the proper temperature convertions.
+
+http://floating-point-gui.de/languages/java/
+http://stackoverflow.com/questions/4885254/string-format-to-format-double-in-java
+* Rounding numbers in java.
+
 ## Known Problems, Issues, And/Or Errors in the Program
 
+* I can't seem to figure out how to properly use savedInstanceState to keep program status through rotations. I'm pretty sure it's because I'm trying to pass an array of booleans.
+
+* To elaborate, my initial problem is this: the only thing (seemingly) not saved on rotate are the conversion display strings, which are only generated if all booleans come back true true and a button is pressed. I COULD potentially just force the string to display on rotate, but that just delays the issue. IE: to display another, seperate equation, the user will have to click every single group again to trigger the 3 booleans anyways. Therefore it's best to either 1) carry over all three booleans or 2) reset the entire program (including button selections) on rotate.
 
+* In an attempt to carry over these three booleans, an array seemed like the only solution. Via debugging, it appears that the array does infact seem to save all appropriate values just before rotate, as intended. However, the problem seems to be in calling them back up in the onCreate method. Getting a saved instance state requires passing the Key_Index string (which points to the value you want to use), and then the "default to if no value" parameter, right? So then to call a specific index of the savedBooleanStateArray, I would need to somehow modify Key_Index to point at a particular index? I think? I don't know...this was confusing enough when passing a single variable, but I can't think of a reasonable way to make this program work with only passing 1.
\ No newline at end of file
diff --git a/app/src/main/java/edu/kvcc/cis298/cis298assignment2/Conversion.java b/app/src/main/java/edu/kvcc/cis298/cis298assignment2/Conversion.java
index bb4ecf5c18a8ca04276d89e6dbbd1f596741f45e..7eed780fe9be91d74525d254fc58ab639ef59f51 100644
--- a/app/src/main/java/edu/kvcc/cis298/cis298assignment2/Conversion.java
+++ b/app/src/main/java/edu/kvcc/cis298/cis298assignment2/Conversion.java
@@ -25,9 +25,9 @@ public class Conversion {
 
     public Conversion(double initialValue, int initialGroup, int convertGroup)
     {
-        setInitialValueDouble(initialValueDouble);
-        setInitialGroupInt(initialGroupInt);
-        setConvertGroupInt(convertGroupInt);
+        setInitialValueDouble(initialValue);
+        setInitialGroupInt(initialGroup);
+        setConvertGroupInt(convertGroup);
 
         CalculateTemperature();
     }
@@ -126,7 +126,7 @@ public class Conversion {
                 }
                 // If desired is Rankin, convert from base.
                 else {
-                    convertedValueDouble = ((baseDouble  * 9 / 5) - 491.67);
+                    convertedValueDouble = ((baseDouble + 273.15) * 9 / 5);
                 }
             }
         }
diff --git a/app/src/main/java/edu/kvcc/cis298/cis298assignment2/TemperatureConverter.java b/app/src/main/java/edu/kvcc/cis298/cis298assignment2/TemperatureConverter.java
index 56101b2850250a4236876d2657107da9b61d31fa..25a374df5b0f073fb84bb05b96b7889b91006e0a 100644
--- a/app/src/main/java/edu/kvcc/cis298/cis298assignment2/TemperatureConverter.java
+++ b/app/src/main/java/edu/kvcc/cis298/cis298assignment2/TemperatureConverter.java
@@ -50,6 +50,8 @@ public class TemperatureConverter extends AppCompatActivity {
     private static final String TAG = "TemperatureConverter";
     private static final String KEY_INDEX = "index";
 
+    private boolean[] mCurrentStatus = new boolean[3];
+
     Conversion conversion;
 
     //endregion
@@ -75,8 +77,8 @@ public class TemperatureConverter extends AppCompatActivity {
         mSelectedInitialId = mInitialGroup.getCheckedRadioButtonId();
         mSelectedConvertId = mConvertGroup.getCheckedRadioButtonId();
 
-        int initialGroupSelection;
-        int convertGroupSelection;
+        int initialGroupSelection = 0;
+        int convertGroupSelection = 0;
 
         if (mSelectedInitialId == mInitial1Radio.getId()) {
             initialGroupSelection = 1;
@@ -116,141 +118,143 @@ public class TemperatureConverter extends AppCompatActivity {
             }
         }
 
-        conversion = new Conversion(0, initialGroupSelection, convertGroupSelection);
+        conversion = new Conversion(userDouble, initialGroupSelection, convertGroupSelection);
 
         DisplayConversion();
     }
 
     private void DisplayConversion()
     {
-        double initialTemp = conversion.getInitialValueDouble();
-        double convertTemp = conversion.getConvertedValueDouble();
+        String initialTemp = String.format("%.2f", conversion.getInitialValueDouble());
+        String convertTemp = String.format("%.2f", conversion.getConvertedValueDouble());
+
+
         String conversion1String;
         String conversion2String;
         String equation1String;
         String equation2String;
 
         // Determines what types of strings should display.
-        // Combinations for Initial1 selected.
+        // Combinations for FromCelsius selected.
         if (mSelectedInitialId == mInitial1Radio.getId()) {
             if (mSelectedConvertId == mConvert1Radio.getId()) {
-                conversion1String = initialTemp + "C";
-                conversion2String = convertTemp + "C";
+                conversion1String = initialTemp + " C";
+                conversion2String = convertTemp + " C";
                 equation1String = "[C]";
                 equation2String = "[C]";
             }
             else {
                 if (mSelectedConvertId == mConvert2Radio.getId()) {
-                    conversion1String = initialTemp + "C";
-                    conversion2String = convertTemp + "F";
+                    conversion1String = initialTemp + " C";
+                    conversion2String = convertTemp + " F";
                     equation1String = "[F]";
                     equation2String = "([C] x 9/5) + 32";
                 }
                 else {
                     if (mSelectedConvertId == mConvert3Radio.getId()) {
-                        conversion1String = initialTemp + "C";
-                        conversion2String = convertTemp + "K";
+                        conversion1String = initialTemp + " C";
+                        conversion2String = convertTemp + " K";
                         equation1String = "[K]";
                         equation2String = "[C] + 273.15";
                     }
                     else {
-                        conversion1String = initialTemp + "C";
-                        conversion2String = convertTemp + "R";
+                        conversion1String = initialTemp + " C";
+                        conversion2String = convertTemp + " R";
                         equation1String = "[R]";
-                        equation2String = "([C] * 9 / 5) + 491.67";
+                        equation2String = "([C] + 273.15) * 9 / 5";
                     }
                 }
             }
         }
         else {
-            // Combinations for Initial2 selected.
+            // Combinations for FromFahrenheit selected.
             if (mSelectedInitialId == mInitial2Radio.getId()) {
                 if (mSelectedConvertId == mConvert1Radio.getId()) {
-                    conversion1String = initialTemp + "F";
-                    conversion2String = convertTemp + "C";
+                    conversion1String = initialTemp + " F";
+                    conversion2String = convertTemp + " C";
                     equation1String = "[C]";
                     equation2String = "([F] - 32) * 5 / 9";
                 }
                 else {
                     if (mSelectedConvertId == mConvert2Radio.getId()) {
-                        conversion1String = initialTemp + "F";
-                        conversion2String = convertTemp + "F";
+                        conversion1String = initialTemp + " F";
+                        conversion2String = convertTemp + " F";
                         equation1String = "[F]";
                         equation2String = "[F]";
                     }
                     else {
                         if (mSelectedConvertId == mConvert3Radio.getId()) {
-                            conversion1String = initialTemp + "F";
-                            conversion2String = convertTemp + "K";
+                            conversion1String = initialTemp + " F";
+                            conversion2String = convertTemp + " K";
                             equation1String = "[K]";
-                            equation2String = "[F]";
+                            equation2String = "([F] + 459.67) * 5 / 9";
                         }
                         else {
-                            conversion1String = initialTemp + "F";
-                            conversion2String = convertTemp + "R";
+                            conversion1String = initialTemp + " F";
+                            conversion2String = convertTemp + " R";
                             equation1String = "[R]";
-                            equation2String = "[F]";
+                            equation2String = "[F] + 459.67";
                         }
                     }
                 }
             }
             else {
-                // Combinations for Initial3 selected.
+                // Combinations for FromKelvin selected.
                 if (mSelectedInitialId == mInitial3Radio.getId()) {
                     if (mSelectedConvertId == mConvert1Radio.getId()) {
-                        conversion1String = initialTemp + "K";
-                        conversion2String = convertTemp + "C";
+                        conversion1String = initialTemp + " K";
+                        conversion2String = convertTemp + " C";
                         equation1String = "[C]";
                         equation2String = "[K] - 273.15";
                     }
                     else {
                         if (mSelectedConvertId == mConvert2Radio.getId()) {
-                            conversion1String = initialTemp + "K";
-                            conversion2String = convertTemp + "F";
+                            conversion1String = initialTemp + " K";
+                            conversion2String = convertTemp + " F";
                             equation1String = "[F]";
-                            equation2String = "[K]";
+                            equation2String = "([K] * 9 / 5) - 459.67";
                         }
                         else {
                             if (mSelectedConvertId == mConvert3Radio.getId()) {
-                                conversion1String = initialTemp + "K";
-                                conversion2String = convertTemp + "K";
+                                conversion1String = initialTemp + " K";
+                                conversion2String = convertTemp + " K";
                                 equation1String = "[K]";
                                 equation2String = "[K]";
                             }
                             else {
-                                conversion1String = initialTemp + "K";
-                                conversion2String = convertTemp + "R";
+                                conversion1String = initialTemp + " K";
+                                conversion2String = convertTemp + " R";
                                 equation1String = "[R]";
-                                equation2String = "[K]";
+                                equation2String = "[K] * 9 / 5";
                             }
                         }
                     }
                 }
                 else {
-                    // Combinations for Initial4 selected
+                    // Combinations for FromRankine selected
                     if (mSelectedConvertId == mConvert1Radio.getId()) {
-                        conversion1String = initialTemp + "R";
-                        conversion2String = convertTemp + "C";
+                        conversion1String = initialTemp + " R";
+                        conversion2String = convertTemp + " C";
                         equation1String = "[C]";
                         equation2String = "([R] - 491.67) * 5 / 9";
                     }
                     else {
                         if (mSelectedConvertId == mConvert2Radio.getId()) {
-                            conversion1String = initialTemp + "R";
-                            conversion2String = convertTemp + "F";
+                            conversion1String = initialTemp + " R";
+                            conversion2String = convertTemp + " F";
                             equation1String = "[F]";
-                            equation2String = "[R]";
+                            equation2String = "[R] - 459.67";
                         }
                         else {
                             if (mSelectedConvertId == mConvert3Radio.getId()) {
-                                conversion1String = initialTemp + "R";
-                                conversion2String = convertTemp + "K";
+                                conversion1String = initialTemp + " R";
+                                conversion2String = convertTemp + " K";
                                 equation1String = "[K]";
-                                equation2String = "[R]";
+                                equation2String = "[R] * 5 / 9";
                             }
                             else {
-                                conversion1String = initialTemp + "R";
-                                conversion2String = convertTemp + "R";
+                                conversion1String = initialTemp + " R";
+                                conversion2String = convertTemp + " R";
                                 equation1String = "[R]";
                                 equation2String = "[R]";
                             }
@@ -279,7 +283,6 @@ public class TemperatureConverter extends AppCompatActivity {
         Log.d(TAG, "onCreate() called");
         setContentView(R.layout.activity_temperature_converter);
 
-
         // Section which assigns (casts) variables to equivalent entity in xml file.
 
         // Assigns (casts) variable mConvertButton to an actual button in the xml file.
@@ -305,10 +308,32 @@ public class TemperatureConverter extends AppCompatActivity {
         // Assigns (casts) edit text to equivalent entities in the xml file.
         mUserInputEditText = (EditText) findViewById(R.id.user_input_edit_text);
 
-        // Initial variables to store user inputs.
-        mInitialGroupChecked = false;
-        mConvertGroupChecked = false;
-        mConvertButtonIsClicked = false;
+        // Gets saved state for booleans.
+        if (savedInstanceState != null) {
+
+            // Loads saved value of initial variables.
+            // ...If KEY_INDEX is an index comprised of a string that points to the array, how the
+            // heck do use it to point to an index in the array? I'm calling an index within an
+            // index? wat.
+            mConvertButtonIsClicked = savedInstanceState.getBoolean(KEY_INDEX, false);
+            mInitialGroupChecked = savedInstanceState.getBoolean(KEY_INDEX, false);
+            mConvertGroupChecked =savedInstanceState.getBoolean(KEY_INDEX, false);
+
+            // Checks to see if user has input a number.
+            if (mUserInputEditText.length() > 0) {
+                // Checks to see if both groups have been checked, and if convert button has been
+                // clicked at least once.
+                if (mInitialGroupChecked && mConvertGroupChecked && mConvertButtonIsClicked) {
+                    Convert();
+                }
+            }
+        }
+        else {
+            // Initial variables to store user inputs.
+            mConvertButtonIsClicked = false;
+            mInitialGroupChecked = false;
+            mConvertGroupChecked = false;
+        }
 
         // Section which sets onClickListeners (watches for user action).
         // OnClickListener for Initial Radio Button Group.
@@ -386,6 +411,19 @@ public class TemperatureConverter extends AppCompatActivity {
 
     }
 
+    @Override
+    protected void onSaveInstanceState(Bundle outState) {
+        super.onSaveInstanceState(outState);
+        Log.d(TAG, "onSaveInstanceState");
+
+        // Saves current state booleans.
+        mCurrentStatus[0] = mConvertButtonIsClicked;
+        mCurrentStatus[1] = mInitialGroupChecked;
+        mCurrentStatus[2] = mConvertGroupChecked;
+
+        outState.putBooleanArray(KEY_INDEX, mCurrentStatus);
+    }
+
     @Override
     public boolean onCreateOptionsMenu(Menu menu) {
         // Inflate the menu; this adds items to the action bar if it is present.
diff --git a/app/src/main/res/layout/activity_temperature_converter.xml b/app/src/main/res/layout/activity_temperature_converter.xml
index 20c38e42e18f5c7cc19f6c6c06eb45493556ac26..f540009df8f7bc70fedd13444d3f9177948293f9 100644
--- a/app/src/main/res/layout/activity_temperature_converter.xml
+++ b/app/src/main/res/layout/activity_temperature_converter.xml
@@ -24,7 +24,7 @@
         android:id="@+id/user_input_edit_text"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
-        android:inputType="number" />
+        android:inputType="numberDecimal|numberSigned" />
 
     <LinearLayout
         android:layout_width="match_parent"