         }
     }
     
+    func getGravitationalAccelerationAtCurrentInstant (values: (x:Double, y:Double, z:Double) -> ()){
+        self.getGravityAccelerationFromDeviceMotion(interval: 0.5) { (x, y, z) -> () in
+            values(x: x,y: y,z: z)
+            self.stopDeviceMotionUpdates()
+        }
+    }
+    
+    func getAttitudeAtCurrentInstant (values: (attitude: CMAttitude) -> ()){
+        self.getAttitudeFromDeviceMotion(interval: 0.5) { (attitude) -> () in
+            values(attitude: attitude)
+            self.stopDeviceMotionUpdates()
+        }
+    
+    }
+    
     func getMageticFieldAtCurrentInstant (values: (x:Double, y:Double, z:Double) -> ()){
         self.getMagneticFieldFromDeviceMotion(interval: 0.5) { (x, y, z, accuracy) -> () in
             values(x: x,y: y,z: z)

        }
    }
    
    
    /*
    *  stopAccelerometerUpdates

        }
    }
    
    /*  MARK :- DEVICE MOTION APPROACH ENDS HERE    */
    
    
    /*
    *   From the methods hereafter, the sensor values could be retrieved at
    *   a particular instant, whenever needed, through a trailing closure.
    */
    
    /*  MARK :- INSTANTANIOUS METHODS START HERE  */
    
    func getAccelerationAtCurrentInstant (values: (x:Double, y:Double, z:Double) -> ()){
        self.getAccelerationFromDeviceMotion(interval: 0.5) { (x, y, z) -> () in
