diff --git a/src/app/hirebike/hirebike.page.ts b/src/app/hirebike/hirebike.page.ts
index c7f2d5e230a38872ce4fb881601a8172453ab708..4843ca6dde8c25f9322a547bf22c502d6d4b7c04 100644
--- a/src/app/hirebike/hirebike.page.ts
+++ b/src/app/hirebike/hirebike.page.ts
@@ -2,7 +2,7 @@ import { Component, OnInit, ViewChild, ElementRef } from '@angular/core';
 
 import { Geolocation } from '@ionic-native/geolocation/ngx';
 import { RestService } from '../rest.service';
-import { Observable } from 'rxjs';
+import { Observable, Subject } from 'rxjs';
 import { HttpClient, HttpHeaders } from '@angular/common/http';
 import { Storage } from '@ionic/storage';
 import { ToastService } from '../services/toast.service';
@@ -16,34 +16,15 @@ declare var H: any;
 export class HirebikePage implements OnInit {
 
   private platform: any;
-  private map: any;
-  // Get an instance of the routing service:
-  private mapRouter: any;
 
   reservedBike: any = {};
   bikeDetails: any = {};
-  address="sample";
-  isBikeHired=false;
-
+  address = "sample";
+  isBikeHired = false;
   noReservation = true;
 
-  private currentLocation = { lat: 0, lng: 0 };
-
-  // Create the parameters for the routing request:
-  private routingParameters = {
-    // The routing mode:
-    mode: 'shortest;pedestrian',
-    // The start point of the route:
-    waypoint0: 'geo!50.1120423728813,8.68340740740811',
-    // The end point of the route:
-    waypoint1: 'geo!52.5309916298853,13.3846220493377',
-    // To retrieve the shape of the route we choose the route
-    // representation mode 'display'
-    representation: 'display'
-  };
-
-  @ViewChild("mapElement", { static: false })
-  public mapElement: ElementRef;
+  startRideSubject: Subject<any> = new Subject();
+  gotReservedBikeSubject: Subject<any> = new Subject();
 
   constructor(private geolocation: Geolocation,
     public restService: RestService,
@@ -51,10 +32,9 @@ export class HirebikePage implements OnInit {
     private storage: Storage,
     private toastService: ToastService,
     private router: Router) {
-    this.platform = new H.service.Platform({
-      'apikey': 'tiVTgBnPbgV1spie5U2MSy-obhD9r2sGiOCbBzFY2_k'
-    });
-    this.mapRouter = this.platform.getRoutingService();
+      this.platform = new H.service.Platform({
+        'apikey': 'tiVTgBnPbgV1spie5U2MSy-obhD9r2sGiOCbBzFY2_k'
+      });
   }
 
   ngOnInit() {
@@ -75,7 +55,7 @@ export class HirebikePage implements OnInit {
         console.log('Reserved Bike', resp);
         if (resp.data) {
           this.reservedBike = resp.data;
-          this.isBikeHired=this.reservedBike.rented;
+          this.isBikeHired = this.reservedBike.rented;
           //Call Bike Details api
           let bikeDetailsUrl = 'http://193.196.52.237:8081/bikes/' + this.reservedBike.bikeId;
           let bikeDetailsApi = this.httpClient.get(bikeDetailsUrl, { headers });
@@ -84,18 +64,16 @@ export class HirebikePage implements OnInit {
             this.bikeDetails = resp.data;
             this.noReservation = false;
             this.reverseGeocode(this.platform, this.bikeDetails.lat, this.bikeDetails.lon);
-            // display map
-            setTimeout(() => {
-              this.loadmap();
-            }, 1000);
-            window.addEventListener('resize', () => this.map.getViewPort().resize());
+            
+            //pass reserved bike subject here map
+            this.gotReservedBikeSubject.next(resp.data);
           }, (reservedBikeError) => console.log(reservedBikeError));
         }
       }, (bikeDetailsError) => console.log(bikeDetailsError));
     });
   }
-  startTrip(){
 
+  startTrip1() {
     this.storage.get('token').then((token) => {
       let url = 'http://193.196.52.237:8081/rent' + '?bikeId=' + this.bikeDetails.id;
       const headers = new HttpHeaders().set("Authorization", "Bearer " + token);
@@ -103,7 +81,7 @@ export class HirebikePage implements OnInit {
       bikeApi.subscribe((resp) => {
         console.log('my data: ', resp);
         this.toastService.showToast("Trip Started");
-        this.isBikeHired=true;
+        this.isBikeHired = true;
       }, (error) => {
         console.log(error)
         this.toastService.showToast("This is ongoing Trip")
@@ -112,8 +90,12 @@ export class HirebikePage implements OnInit {
 
   }
 
-  CancelTrip(){
+  startTrip() {
+    this.isBikeHired = true;
+    this.startRideSubject.next('some value');
+  }
 
+  CancelTrip() {
     this.storage.get('token').then((token) => {
       let url = 'http://193.196.52.237:8081/rent' + '?bikeId=' + this.bikeDetails.id;
       const headers = new HttpHeaders().set("Authorization", "Bearer " + token);
@@ -126,110 +108,6 @@ export class HirebikePage implements OnInit {
         this.toastService.showToast("No Ongong Trip to End")
       });
     });
-
-  }
-
-
-  loadmap() {
-    var defaultLayers = this.platform.createDefaultLayers();
-    this.map = new H.Map(
-      this.mapElement.nativeElement,
-      defaultLayers.raster.normal.map,
-      {
-        zoom: 17,
-        pixelRatio: window.devicePixelRatio || 1
-      }
-    );
-
-    var behavior = new H.mapevents.Behavior(new H.mapevents.MapEvents(this.map));
-    var ui = H.ui.UI.createDefault(this.map, defaultLayers);
-    ui.removeControl("mapsettings");
-    // create custom one
-    var ms = new H.ui.MapSettingsControl({
-      baseLayers: [{
-        label: "3D", layer: defaultLayers.vector.normal.map
-      }, {
-        label: "Normal", layer: defaultLayers.raster.normal.map
-      }, {
-        label: "Satellite", layer: defaultLayers.raster.satellite.map
-      }, {
-        label: "Terrain", layer: defaultLayers.raster.terrain.map
-      }
-      ],
-      layers: [{
-        label: "layer.traffic", layer: defaultLayers.vector.normal.traffic
-      },
-      {
-        label: "layer.incidents", layer: defaultLayers.vector.normal.trafficincidents
-      }
-      ]
-    });
-    ui.addControl("customized", ms);
-    var mapSettings = ui.getControl('customized');
-    var zoom = ui.getControl('zoom');
-    mapSettings.setAlignment('top-right');
-    zoom.setAlignment('left-top');
-
-    //get user location
-    this.getLocation(this.map);
-
-    var img = ['../../../assets/images/100_percent.png', '../../../assets/images/75_percent.png', '../../../assets/images/50_percent.png', '../../../assets/images/25_percent.png', '../../../assets/images/0_percent.png'];
-    if (this.bikeDetails.batteryPercentage < 100 && this.bikeDetails.batteryPercentage >= 75) {
-      this.addMarker(Number(this.bikeDetails.lat), Number(this.bikeDetails.lon), img[0]);
-    }
-    else if (this.bikeDetails.batteryPercentage < 75 && this.bikeDetails.batteryPercentage >= 50) {
-      this.addMarker(Number(this.bikeDetails.lat), Number(this.bikeDetails.lon), img[1]);
-    }
-    else if (this.bikeDetails.batteryPercentage < 50 && this.bikeDetails.batteryPercentage >= 25) {
-      this.addMarker(Number(this.bikeDetails.lat), Number(this.bikeDetails.lon), img[2]);
-    } else if (this.bikeDetails.batteryPercentage < 25 && this.bikeDetails.batteryPercentage >= 0) {
-      this.addMarker(Number(this.bikeDetails.lat), Number(this.bikeDetails.lon), img[3]);
-    }
-  }
-
-  getLocation(map) {
-    this.geolocation.getCurrentPosition(
-      {
-        maximumAge: 1000, timeout: 5000,
-        enableHighAccuracy: true
-      }
-    ).then((resp) => {
-      let lat = resp.coords.latitude
-      let lng = resp.coords.longitude
-      this.currentLocation.lat = resp.coords.latitude;
-      this.currentLocation.lng = resp.coords.longitude;
-      this.moveMapToGiven(map, lat, lng);
-      // set routing params
-      this.routingParameters.waypoint1 = 'geo!' + this.bikeDetails.lat + ',' + this.bikeDetails.lon;
-      this.routingParameters.waypoint0 = 'geo!' + this.currentLocation.lat + ',' + this.currentLocation.lng;
-
-      // show route on map
-      this.mapRouter.calculateRoute(this.routingParameters, this.onResult.bind(this),
-      (error) => {
-        alert(error.message);
-      });
-    }, er => {
-      alert('Can not retrieve Location')
-    }).catch((error) => {
-      alert('Error getting location - ' + JSON.stringify(error))
-    });
-  }
-
-  moveMapToGiven(map, lat, lng) {
-    var icon = new H.map.Icon('../../../assets/images/current_location.png');
-    // Create a marker using the previously instantiated icon:
-    var marker = new H.map.Marker({ lat: lat, lng: lng }, { icon: icon });
-    // Add the marker to the map:
-    map.addObject(marker);
-    map.setCenter({ lat: lat, lng: lng });
-  }
-
-  addMarker(lat, lng, img) {
-    var icon = new H.map.Icon(img);
-    // Create a marker using the previously instantiated icon:
-    var marker = new H.map.Marker({ lat: lat, lng: lng }, { icon: icon });
-    // Add the marker to the map:
-    this.map.addObject(marker);
   }
   reverseGeocode(platform, lat, lng) {
     var prox = lat + ',' + lng + ',56';
@@ -246,66 +124,12 @@ export class HirebikePage implements OnInit {
       var streets = result.Response.View[0].Result[0].Location.Address.Street;
       var houseNumber = result.Response.View[0].Result[0].Location.Address.HouseNumber;
       var zipcode = result.Response.View[0].Result[0].Location.Address.PostalCode;
-     
+
       this.address = streets;
-     
+
 
     }, (error) => {
       alert(error);
     });
   }
-
-  // Define a callback function to process the routing response:
-  onResult(result) {
-    var route,
-      routeShape,
-      startPoint,
-      endPoint,
-      linestring;
-    if (result.response.route) {
-      // Pick the first route from the response:
-      route = result.response.route[0];
-      // Pick the route's shape:
-      routeShape = route.shape;
-
-      // Create a linestring to use as a point source for the route line
-      linestring = new H.geo.LineString();
-
-      // Push all the points in the shape into the linestring:
-      routeShape.forEach(function (point) {
-        var parts = point.split(',');
-        linestring.pushLatLngAlt(parts[0], parts[1]);
-      });
-
-      // Retrieve the mapped positions of the requested waypoints:
-      startPoint = route.waypoint[0].mappedPosition;
-      endPoint = route.waypoint[1].mappedPosition;
-
-      // Create a polyline to display the route:
-      var routeLine = new H.map.Polyline(linestring, {
-        /* style: {
-          lineWidth: 10,
-          fillColor: 'white',
-          strokeColor: 'rgba(255, 255, 255, 1)',
-          lineDash: [0, 2],
-          lineTailCap: 'arrow-tail',
-          lineHeadCap: 'arrow-head' 
-        } */
-        style: {
-          lineWidth: 6,
-          strokeColor: 'rgba(0, 72, 255, 0.8)',
-          lineDash: [0, 2]
-          }
-      });
-
-      // Add the route polyline and the two markers to the map:
-      this.map.addObjects([routeLine]);
-
-      // Set the map's viewport to make the whole route visible:
-      this.map.getViewModel().setLookAtData({ bounds: routeLine.getBoundingBox() });
-      //this.map.setZoom(this.map.getZoom() - 4.3, true);
-    }
-  };
-  
-
 }