diff --git a/components/cycle-day.js b/components/cycle-day.js
index 194b1456807250942a8dee52cbad5ccc78aba0d3..bc3a6746a58b50436e950dc938b6633ad8fd4314 100644
--- a/components/cycle-day.js
+++ b/components/cycle-day.js
@@ -43,10 +43,9 @@ export default class Day extends Component {
               Cycle day {cycleDayNumber}
             </Text> }
 
-          { cycleDayNumber &&
           <Text style={styles.cycleDayNumber} >
             {fertilityStatus}
-          </Text> }
+          </Text>
         </View >
         <View style={ styles.cycleDaySymptomsView }>
           {
diff --git a/lib/cycle.js b/lib/cycle.js
index 15fca1584ba79cea60640462fbead419715aa58d..b5a1e2122099c536f0ce1c09c0315b6c75611e71 100644
--- a/lib/cycle.js
+++ b/lib/cycle.js
@@ -1,4 +1,5 @@
 import * as joda from 'js-joda'
+
 const LocalDate = joda.LocalDate
 
 export default function config(opts) {
@@ -49,14 +50,16 @@ export default function config(opts) {
       return !previousBleedingDays.some(({ wrappedDate }) => wrappedDate.equals(periodThreshold) || wrappedDate.isAfter(periodThreshold))
     }
 
+    withWrappedDates.forEach(day => delete day.wrappedDate)
     return lastPeriodStart
   }
 
   function getCycleDayNumber(targetDateString) {
     const lastMensesStart = getLastMensesStart(targetDateString)
     if (!lastMensesStart) return null
-    const targetDate = joda.LocalDate.parse(targetDateString)
-    const diffInDays = lastMensesStart.wrappedDate.until(targetDate, joda.ChronoUnit.DAYS)
+    const targetDate = LocalDate.parse(targetDateString)
+    const lastMensesLocalDate = LocalDate.parse(lastMensesStart.date)
+    const diffInDays = lastMensesLocalDate.until(targetDate, joda.ChronoUnit.DAYS)
 
     // cycle starts at day 1
     return diffInDays + 1
@@ -73,15 +76,36 @@ export default function config(opts) {
 
   function getCycleDaysBeforeDay(targetDateString) {
     const firstCycleDay = getLastMensesStart(targetDateString)
+    if (!firstCycleDay) return null
     return cycleDaysSortedByDate.filter(({date}) => {
       return date >= firstCycleDay.date && date <= targetDateString
     })
   }
 
+  function getPreviousCycles(targetCycleStartDay) {
+    let previousCycleStartIndex = cycleDaysSortedByDate.indexOf(targetCycleStartDay)
+    const cycles = []
+    while (previousCycleStartIndex < cycleDaysSortedByDate.length - 1) {
+      const prevDate = cycleDaysSortedByDate[previousCycleStartIndex + 1].date
+      const cycleStart = getLastMensesStart(prevDate)
+
+      if (!cycleStart) break
+
+      const cycleStartIndex = cycleDaysSortedByDate.indexOf(cycleStart)
+      const lastDayInCycle = previousCycleStartIndex + 1
+      const cycle = cycleDaysSortedByDate.slice(lastDayInCycle, cycleStartIndex + 1)
+      cycles.push(cycle)
+      previousCycleStartIndex = cycleStartIndex
+    }
+
+    return cycles
+  }
+
   return {
     getCycleDayNumber,
     getLastMensesStart,
     getPreviousTemperaturesInCycle,
-    getCycleDaysBeforeDay
+    getCycleDaysBeforeDay,
+    getPreviousCycles
   }
 }
diff --git a/lib/sympto-adapter.js b/lib/sympto-adapter.js
index e9e384d78ab2b8fc138f173225e7db63cb144ae5..8c1c3e131f541636e094932aa1e3fc47ed0f4ff4 100644
--- a/lib/sympto-adapter.js
+++ b/lib/sympto-adapter.js
@@ -1,18 +1,22 @@
 import getFertilityStatus from './sympto'
 import cycleModule from './cycle'
 
-const { getCycleDaysBeforeDay } = cycleModule()
+const { getCycleDaysBeforeDay, getPreviousCycles } = cycleModule()
 
 export default function (dateString) {
+  const cycle = getCycleDaysBeforeDay(dateString)
+  if (!cycle) return `We cannot show any cycle information because no menses has been entered`
+
   // we get earliest last, but sympto wants earliest first
-  const cycle = getCycleDaysBeforeDay(dateString).reverse()
-  // const previousCycles = getPreviousCycles()
-  const status = getFertilityStatus({cycle})
+  cycle.reverse()
+  const previousCycles = getPreviousCycles(cycle[0])
+  previousCycles.forEach(cycle => cycle.reverse())
+
+  const status = getFertilityStatus({cycle, previousCycles})
 
   return formatStatusForApp(status)
 }
 
 function formatStatusForApp(status) {
-  const fertileStatus = status.assumeFertility ? 'fertile' : 'infertile'
-  return `You are currently ${fertileStatus}`
+  return status.assumeFertility ? 'fertile' : 'infertile'
 }
\ No newline at end of file
diff --git a/test/cycle.spec.js b/test/cycle.spec.js
index ae60632821cd4b1b2d5f3ebf4180758a61c36618..4b7858ce4ad03820cbb08aba94539a0c8a64d269 100644
--- a/test/cycle.spec.js
+++ b/test/cycle.spec.js
@@ -23,7 +23,7 @@ describe('getCycleDay', () => {
         value: 2
       }
     }]
-    const getCycleDayNumber = cycleModule({bleedingDaysSortedByDate: bleedingDays}).getCycleDayNumber
+    const getCycleDayNumber = cycleModule({ bleedingDaysSortedByDate: bleedingDays }).getCycleDayNumber
     const targetDate = '2018-05-17'
     const result = getCycleDayNumber(targetDate)
     expect(result).to.eql(9)
@@ -49,7 +49,7 @@ describe('getCycleDay', () => {
       }
     }]
     const targetDate = '2018-05-17'
-    const getCycleDayNumber = cycleModule({bleedingDaysSortedByDate: bleedingDays}).getCycleDayNumber
+    const getCycleDayNumber = cycleModule({ bleedingDaysSortedByDate: bleedingDays }).getCycleDayNumber
     const result = getCycleDayNumber(targetDate)
     expect(result).to.eql(15)
   })
@@ -73,7 +73,7 @@ describe('getCycleDay', () => {
     }]
 
     const targetDate = '2018-04-27'
-    const getCycleDayNumber = cycleModule({bleedingDaysSortedByDate: bleedingDays}).getCycleDayNumber
+    const getCycleDayNumber = cycleModule({ bleedingDaysSortedByDate: bleedingDays }).getCycleDayNumber
     const result = getCycleDayNumber(targetDate)
     expect(result).to.eql(18)
   })
@@ -87,59 +87,147 @@ describe('getCycleDay', () => {
     }]
 
     const targetDate = '2018-05-13'
-    const getCycleDayNumber = cycleModule({bleedingDaysSortedByDate: bleedingDays}).getCycleDayNumber
+    const getCycleDayNumber = cycleModule({ bleedingDaysSortedByDate: bleedingDays }).getCycleDayNumber
     const result = getCycleDayNumber(targetDate)
     expect(result).to.eql(1)
   })
-})
 
-describe('getCycleDay returns null', () => {
-  it('if there are no bleeding days', function () {
-    const bleedingDays = []
-    const targetDate = '2018-05-17'
-    const getCycleDayNumber = cycleModule({bleedingDaysSortedByDate: bleedingDays}).getCycleDayNumber
-    const result = getCycleDayNumber(targetDate)
-    expect(result).to.be.null()
+  describe('getCycleDay returns null', () => {
+    it('if there are no bleeding days', function () {
+      const bleedingDays = []
+      const targetDate = '2018-05-17'
+      const getCycleDayNumber = cycleModule({ bleedingDaysSortedByDate: bleedingDays }).getCycleDayNumber
+      const result = getCycleDayNumber(targetDate)
+      expect(result).to.be.null()
+    })
   })
-})
 
-describe('getCycleDay with cycle thresholds', () => {
-  const maxBreakInBleeding = 3
+  describe('getCycleDay with cycle thresholds', () => {
+    const maxBreakInBleeding = 3
 
-  it('disregards bleeding breaks shorter than max allowed bleeding break in a bleeding period', () => {
-    const bleedingDays = [{
-      date: '2018-05-14',
-      bleeding: {
-        value: 2
-      }
-    }, {
-      date: '2018-05-10',
-      bleeding: {
-        value: 2
-      }
-    }]
+    it('disregards bleeding breaks shorter than max allowed bleeding break in a bleeding period', () => {
+      const bleedingDays = [{
+        date: '2018-05-14',
+        bleeding: {
+          value: 2
+        }
+      }, {
+        date: '2018-05-10',
+        bleeding: {
+          value: 2
+        }
+      }]
 
-    const targetDate = '2018-05-17'
-    const getCycleDayNumber = cycleModule({bleedingDaysSortedByDate: bleedingDays, maxBreakInBleeding }).getCycleDayNumber
-    const result = getCycleDayNumber(targetDate)
-    expect(result).to.eql(8)
+      const targetDate = '2018-05-17'
+      const getCycleDayNumber = cycleModule({ bleedingDaysSortedByDate: bleedingDays, maxBreakInBleeding }).getCycleDayNumber
+      const result = getCycleDayNumber(targetDate)
+      expect(result).to.eql(8)
+    })
+
+    it('counts bleeding breaks longer than maxAllowedBleedingBreak in a bleeding period', () => {
+      const bleedingDays = [{
+        date: '2018-05-14',
+        bleeding: {
+          value: 2
+        }
+      }, {
+        date: '2018-05-09',
+        bleeding: {
+          value: 2
+        }
+      }]
+      const targetDate = '2018-05-17'
+      const getCycleDayNumber = cycleModule({ bleedingDaysSortedByDate: bleedingDays, maxBreakInBleeding }).getCycleDayNumber
+      const result = getCycleDayNumber(targetDate)
+      expect(result).to.eql(4)
+    })
   })
+})
 
-  it('counts bleeding breaks longer than maxAllowedBleedingBreak in a bleeding period', () => {
-    const bleedingDays = [{
-      date: '2018-05-14',
-      bleeding: {
-        value: 2
-      }
-    }, {
-      date: '2018-05-09',
-      bleeding: {
-        value: 2
-      }
-    }]
-    const targetDate = '2018-05-17'
-    const getCycleDayNumber = cycleModule({bleedingDaysSortedByDate: bleedingDays, maxBreakInBleeding }).getCycleDayNumber
-    const result = getCycleDayNumber(targetDate)
-    expect(result).to.eql(4)
+describe('getPreviousCycles', () => {
+  it('gets previous cycles', () => {
+    const cycleDaysSortedByDate = [
+      {
+        date: '2018-07-05',
+        bleeding: { value: 2 }
+      },
+      {
+        date: '2018-06-05',
+        bleeding: { value: 2 }
+      },
+      {
+        date: '2018-05-05',
+        mucus: { value: 2 }
+      },
+      {
+        date: '2018-05-04',
+        bleeding: { value: 2 }
+      },
+      {
+        date: '2018-05-03',
+        bleeding: { value: 2 }
+      },
+      {
+        date: '2018-04-05',
+        mucus: { value: 2 }
+      },
+      {
+        date: '2018-04-04',
+        mucus: { value: 2 }
+      },
+      {
+        date: '2018-04-03',
+        mucus: { value: 2 }
+      },
+      {
+        date: '2018-04-02',
+        bleeding: { value: 2 }
+      },
+    ]
+
+    const { getPreviousCycles } = cycleModule({
+      cycleDaysSortedByDate,
+      bleedingDaysSortedByDate: cycleDaysSortedByDate.filter(d => d.bleeding)
+    })
+    const result = getPreviousCycles(cycleDaysSortedByDate[0])
+    expect(result.length).to.eql(3)
+    expect(result).to.eql([
+      [
+        {
+          date: '2018-06-05',
+          bleeding: { value: 2 }
+        }
+      ], [
+        {
+          date: '2018-05-05',
+          mucus: { value: 2 }
+        },
+        {
+          date: '2018-05-04',
+          bleeding: { value: 2 }
+        },
+        {
+          date: '2018-05-03',
+          bleeding: { value: 2 }
+        }
+      ], [
+        {
+          date: '2018-04-05',
+          mucus: { value: 2 }
+        },
+        {
+          date: '2018-04-04',
+          mucus: { value: 2 }
+        },
+        {
+          date: '2018-04-03',
+          mucus: { value: 2 }
+        },
+        {
+          date: '2018-04-02',
+          bleeding: { value: 2 }
+        },
+      ]
+    ])
   })
 })
\ No newline at end of file