diff --git a/components/cycle-day/cycle-day-overview.js b/components/cycle-day/cycle-day-overview.js
index 407693617d85737fed3b2c452cfb349c746f2f9b..98231651d3f553fe2bb4c8194c04c0b178cc3408 100644
--- a/components/cycle-day/cycle-day-overview.js
+++ b/components/cycle-day/cycle-day-overview.js
@@ -122,14 +122,14 @@ export default class CycleDayOverView extends Component {
 function getLabel(symptomName, symptom) {
   const l = {
     bleeding: bleeding => {
-      if (typeof bleeding.value === 'number') {
+      if (isNumber(bleeding.value)) {
         let bleedingLabel = `${bleedingLabels[bleeding.value]}`
         if (bleeding.exclude) bleedingLabel = "( " + bleedingLabel + " )"
         return bleedingLabel
       }
     },
     temperature: temperature => {
-      if (typeof temperature.value === 'number') {
+      if (isNumber(temperature.value)) {
         let temperatureLabel = `${temperature.value} °C - ${temperature.time}`
         if (temperature.exclude) {
           temperatureLabel = "( " + temperatureLabel + " )"
@@ -139,7 +139,7 @@ function getLabel(symptomName, symptom) {
     },
     mucus: mucus => {
       const categories = ['feeling', 'texture', 'value']
-      if (categories.every(c => typeof mucus[c] === 'number')) {
+      if (categories.every(c => isNumber(mucus[c]))) {
         let mucusLabel = [feelingLabels[mucus.feeling], textureLabels[mucus.texture]].join(', ')
         mucusLabel += `\n${labels.mucusNFP[mucus.value]}`
         if (mucus.exclude) mucusLabel = `(${mucusLabel})`
@@ -148,12 +148,12 @@ function getLabel(symptomName, symptom) {
     },
     cervix: cervix => {
       let cervixLabel = []
-      if (cervix.opening > -1 && cervix.firmness > -1) {
+      if (isNumber(cervix.opening) && isNumber(cervix.firmness)) {
         cervixLabel.push(
           openingLabels[cervix.opening],
           firmnessLabels[cervix.firmness]
         )
-        if (cervix.position > -1) {
+        if (isNumber(cervix.position)) {
           cervixLabel.push(positionLabels[cervix.position])
         }
         cervixLabel = cervixLabel.join(', ')
@@ -165,7 +165,7 @@ function getLabel(symptomName, symptom) {
       return note.value
     },
     desire: desire => {
-      if (typeof desire.value === 'number') {
+      if (isNumber(desire.value)) {
         const desireLabel = `${intensityLabels[desire.value]}`
         return desireLabel
       }
@@ -266,3 +266,7 @@ class FillerBoxes extends Component {
     return fillerBoxes
   }
 }
+
+function isNumber(val) {
+  return typeof val === 'number'
+}
\ No newline at end of file
diff --git a/components/cycle-day/symptoms/bleeding.js b/components/cycle-day/symptoms/bleeding.js
index 76985f455d8bdd1e7f442a905fe986b7864c2761..3c88ec5cc665eb1a4ea70e826d1511589b4374a8 100644
--- a/components/cycle-day/symptoms/bleeding.js
+++ b/components/cycle-day/symptoms/bleeding.js
@@ -16,12 +16,8 @@ export default class Bleeding extends Component {
     super(props)
     this.cycleDay = props.cycleDay
     this.makeActionButtons = props.makeActionButtons
-    let bleedingValue = this.cycleDay.bleeding && this.cycleDay.bleeding.value
-    if (!(typeof bleedingValue === 'number')) {
-      bleedingValue = -1
-    }
     this.state = {
-      currentValue: bleedingValue,
+      currentValue: this.cycleDay.bleeding && this.cycleDay.bleeding.value,
       exclude: this.cycleDay.bleeding ? this.cycleDay.bleeding.exclude : false
     }
   }
@@ -68,7 +64,7 @@ export default class Bleeding extends Component {
               exclude: this.state.exclude
             })
           }}
-          saveDisabled={this.state.currentValue === -1}
+          saveDisabled={typeof this.state.currentValue != 'number'}
           navigate={this.props.navigate}
         />
       </View>
diff --git a/components/cycle-day/symptoms/cervix.js b/components/cycle-day/symptoms/cervix.js
index 7d2ce6ccbb1582caa49e537f3a313adafcf698b0..ccb1cbd183ab25c919adf1cdf49e2a417469b6ab 100644
--- a/components/cycle-day/symptoms/cervix.js
+++ b/components/cycle-day/symptoms/cervix.js
@@ -17,17 +17,11 @@ export default class Cervix extends Component {
     this.cycleDay = props.cycleDay
     this.makeActionButtons = props.makeActionButtons
     this.state = {
-      exclude: this.cycleDay.cervix ? this.cycleDay.cervix.exclude : false
-    };
-
-    /* eslint-disable react/no-direct-mutation-state */
-    ['opening', 'firmness', 'position'].forEach(label => {
-      this.state[label] = this.cycleDay.cervix && this.cycleDay.cervix[label]
-      if (typeof this.state[label] !== 'number') {
-        this.state[label] = -1
-      }
-    })
-    /* eslint-enable react/no-direct-mutation-state */
+      exclude: this.cycleDay.cervix ? this.cycleDay.cervix.exclude : false,
+      opening: this.cycleDay.cervix ? this.cycleDay.cervix.opening : null,
+      firmness: this.cycleDay.cervix ? this.cycleDay.cervix.firmness : null,
+      position: this.cycleDay.cervix ? this.cycleDay.cervix.position : null
+    }
   }
 
   render() {
@@ -102,7 +96,7 @@ export default class Cervix extends Component {
               exclude: this.state.exclude
             })
           }}
-          saveDisabled={this.state.opening === -1 || this.state.firmness === -1}
+          saveDisabled={typeof this.state.opening != 'number' || typeof this.state.firmness != 'number'}
           navigate={this.props.navigate}
         />
       </View>
diff --git a/components/cycle-day/symptoms/desire.js b/components/cycle-day/symptoms/desire.js
index d9be3b3fd9dbaa8e5e9a76dd1129f9cb487955d5..ea8800f074d1333d45836090963372c84b7c5812 100644
--- a/components/cycle-day/symptoms/desire.js
+++ b/components/cycle-day/symptoms/desire.js
@@ -15,10 +15,7 @@ export default class Desire extends Component {
     super(props)
     this.cycleDay = props.cycleDay
     this.makeActionButtons = props.makeActionButtons
-    let desireValue = this.cycleDay.desire && this.cycleDay.desire.value
-    if (!(typeof desireValue === 'number')) {
-      desireValue = -1
-    }
+    const desireValue = this.cycleDay.desire && this.cycleDay.desire.value
     this.state = { currentValue: desireValue }
   }
 
@@ -48,7 +45,7 @@ export default class Desire extends Component {
           saveAction={() => {
             saveSymptom('desire', this.cycleDay, { value: this.state.currentValue })
           }}
-          saveDisabled={this.state.currentValue === -1}
+          saveDisabled={typeof this.state.currentValue != 'number'}
           navigate={this.props.navigate}
         />
       </View>
diff --git a/components/cycle-day/symptoms/mucus.js b/components/cycle-day/symptoms/mucus.js
index 6257c7c801d452cd6a60b16a705da659b4c96fe5..a517fcd1b0f27b84105cee06998476b4951c7d7b 100644
--- a/components/cycle-day/symptoms/mucus.js
+++ b/components/cycle-day/symptoms/mucus.js
@@ -19,17 +19,10 @@ export default class Mucus extends Component {
     this.cycleDay = props.cycleDay
     this.makeActionButtons = props.makeActionButtons
     this.state = {
-      exclude: this.cycleDay.mucus ? this.cycleDay.mucus.exclude : false
-    };
-
-    /* eslint-disable react/no-direct-mutation-state */
-    ['feeling', 'texture'].forEach(label => {
-      this.state[label] = this.cycleDay.mucus && this.cycleDay.mucus[label]
-      if (typeof this.state[label] !== 'number') {
-        this.state[label] = -1
-      }
-    })
-    /* eslint-enable react/no-direct-mutation-state */
+      exclude: this.cycleDay.mucus ? this.cycleDay.mucus.exclude : false,
+      feeling: this.cycleDay.mucus ? this.cycleDay.mucus.feeling : null,
+      texture: this.cycleDay.mucus ? this.cycleDay.mucus.texture : null
+    }
   }
 
   render() {
@@ -93,7 +86,7 @@ export default class Mucus extends Component {
               exclude: this.state.exclude
             })
           }}
-          saveDisabled={this.state.feeling === -1 || this.state.texture === -1}
+          saveDisabled={typeof this.state.feeling != 'number' || typeof this.state.texture != 'number'}
           navigate={this.props.navigate}
         />
       </View>