diff --git a/App.js b/App.js
index ad7ed66..6d12ee2 100644
--- a/App.js
+++ b/App.js
@@ -13,7 +13,7 @@ import ThemedStackNavigation from './components/ThemedStackNavigation';
 
 
 const store = createStore(swimtrackerReducer);
-const deviceReduxCoupling = new DeviceReduxCoupling(store);
+//const deviceReduxCoupling = new DeviceReduxCoupling(store);
 
 
 export default class App extends React.Component {
@@ -31,6 +31,7 @@ export default class App extends React.Component {
             ...Ionicons.font,
         });
         this.setState({ isReady: true });
+        this.device =  new DeviceReduxCoupling(store);
     }
 
     render() {
diff --git a/components/Graph.js b/components/Graph.js
index 3013780..cdbfc31 100644
--- a/components/Graph.js
+++ b/components/Graph.js
@@ -1,34 +1,83 @@
 import React from 'react';
-import {View, StyleSheet, Text} from 'react-native';
+import { View, StyleSheet } from 'react-native';
 
 //import Svg, {Polyline, Polygon, Rect, G} from 'react-native-svg-web';
-import Svg, {Polyline, Polygon, Rect, G} from 'react-native-svg';
+import Svg, { Polyline, Polygon, Rect, G, Text } from 'react-native-svg';
+import { connect } from 'react-redux';
 
 
+function computeTickMark(largest, mostTicks) {
+    const minimum = largest / mostTicks
+    const magnitude = 10 ** Math.floor(Math.log10(minimum))
+    const residual = minimum / magnitude
+    if (residual > 5)
+        return 10 * magnitude
+    else if (residual > 2)
+        return 5 * magnitude
+    else if (residual > 1)
+        return 2 * magnitude
+    else
+        return magnitude
+}
+
 const Graph = props => {
     const graphHeight = 100;
 
-    const data = props.data.slice(-600);
-    
-    const coordStr = data.map((element, i) => `${i}, ${element / 2}`);
+    const data = props.data.slice(-300);
+    const maxElement = data.reduce((running, x) => Math.max(x, running), 2 / props.kgFactor);
+
+    const coordStr = data.map((element, i) => `${i}, ${100 - (element * 100 / maxElement)}`);
+
+    const tick = computeTickMark(maxElement * props.kgFactor * 0.6, 4);
+    let ticks = [];
+    let nextTick = tick;
+    while (nextTick < maxElement * props.kgFactor) {
+        ticks.push(nextTick);
+        nextTick += tick;
+    }
 
     return (
-        
-            
         
     );
 };
 
 
-export default Graph;
+const mapStateToProps = (state) => {
+    return {
+        data: state.deviceState.measurements,
+        kgFactor: state.settings.analysis.kgFactor
+    };
+};
+
+
+export default connect(mapStateToProps)(Graph);
diff --git a/components/HomeView.js b/components/HomeView.js
index d1e1dc3..427edba 100644
--- a/components/HomeView.js
+++ b/components/HomeView.js
@@ -50,7 +50,7 @@ function HomeView(props) {
 }
 
 const mapStateToProps = (state) => {
-    return { running: state.deviceState.connState == ConnState.CONNECTED_STARTING };
+    return { running: state.deviceState.connState === ConnState.CONNECTED_RUNNING };
 };
 
 export default connect(mapStateToProps)(HomeView);
diff --git a/components/LiveTrainingView.js b/components/LiveTrainingView.js
index b525635..cde8a66 100644
--- a/components/LiveTrainingView.js
+++ b/components/LiveTrainingView.js
@@ -31,6 +31,7 @@ function LiveTrainingView(props) {
                 
                 
                 
+                
                 {/*
                     
                     
diff --git a/state/ActionCreators.js b/state/ActionCreators.js
deleted file mode 100644
index baa5294..0000000
--- a/state/ActionCreators.js
+++ /dev/null
@@ -1,30 +0,0 @@
-
-
-export const CHANGE_USER_NAME = "SET_USERNAME";
-export const CHANGE_THEME = "CHANGE_THEME";
-export const RESET_DEVICE_DATA = "RESET_DEVICE_DATA";
-
-
-
-
-export const changeUsername = newUsername => ({
-    type: CHANGE_USER_NAME,
-    newUserName: newUsername,
-});
-
-export const changeTheme = newThemeName => ({
-    type: CHANGE_THEME,
-    newThemeName: newThemeName
-});
-
-export const startSession = () => ({
-    type: START_SESSION
-});
-
-export const stopSession = () => ({
-    type: STOP_SESSION
-});
-
-// ---------------------
-
-
diff --git a/state/DeviceReduxCoupling.js b/state/DeviceReduxCoupling.js
index 7ab407b..c62cadf 100644
--- a/state/DeviceReduxCoupling.js
+++ b/state/DeviceReduxCoupling.js
@@ -126,12 +126,18 @@ export const deviceStateReducer = (state = INITIAL_DEVICE_STATE, action) => {
     case DEVICE_DISCONNECT:
       return { ...INITIAL_DEVICE_STATE, connState: ConnState.DISCONNECTED };
     case SESSION_STARTED:
+      console.log("session started");
       return { ...INITIAL_DEVICE_STATE, connState: ConnState.CONNECTED_RUNNING, sessionId: action.sessionId };
     case SESSION_STOPPED:
+      console.log("session stopped");
       return { ...INITIAL_DEVICE_STATE, connState: ConnState.CONNECTED_STOPPED };
     case START_SESSION:
+      if(state.connState === ConnState.SESSION_STARTED)
+        return state;
       return { ...INITIAL_DEVICE_STATE, connState: ConnState.CONNECTED_STARTING };
     case STOP_SESSION:
+      if(state.connState === ConnState.SESSION_STOPPED)
+        return state;
       return { ...INITIAL_DEVICE_STATE, connState: ConnState.CONNECTED_STOPPING };
     default:
       console.log("Unhandled state in deviceStateReducer", action.type);
@@ -140,4 +146,4 @@ export const deviceStateReducer = (state = INITIAL_DEVICE_STATE, action) => {
 };
 
 
-
+ 
diff --git a/state/Reducer.js b/state/Reducer.js
index 46af712..f0cbd06 100644
--- a/state/Reducer.js
+++ b/state/Reducer.js
@@ -1,7 +1,29 @@
 import { combineReducers } from 'redux';
-import { CHANGE_THEME, CHANGE_USER_NAME, NEW_DEVICE_DATA, START_SESSION, STOP_SESSION, RESET_DEVICE_DATA } from './ActionCreators';
 import { deviceStateReducer } from "./DeviceReduxCoupling";
 
+export const CHANGE_USER_NAME = "SET_USERNAME";
+export const CHANGE_THEME = "CHANGE_THEME";
+export const RESET_DEVICE_DATA = "RESET_DEVICE_DATA";
+
+
+export const changeUsername = newUsername => ({
+    type: CHANGE_USER_NAME,
+    newUserName: newUsername,
+});
+
+export const changeTheme = newThemeName => ({
+    type: CHANGE_THEME,
+    newThemeName: newThemeName
+});
+
+export const startSession = () => ({
+    type: START_SESSION
+});
+
+export const stopSession = () => ({
+    type: STOP_SESSION
+});
+
 const INITIAL_SETTINGS = {
     theme: "hot",
     username: "",
@@ -12,6 +34,8 @@ const INITIAL_SETTINGS = {
         windowSizeInSecs: 5,
         numMeasurementsPerSec: 10,
 
+        kgFactor: 1.0 / 1100.0,
+
         peakDetector: 'SIMPLE', // either 'SIMPLE' or 'ZSCORE'
         peakDetectorSimpleThreshold: 2500,