 
     /*  MARK :- INSTANTANIOUS METHODS START HERE  */
 
-    public func getAccelerationAtCurrentInstant (_ values: @escaping (_ x:Double, _ y:Double, _ z:Double) -> ()){
+    open func getAccelerationAtCurrentInstant (_ values: @escaping (_ x:Double, _ y:Double, _ z:Double) -> ()){
         self.getAccelerationFromDeviceMotion(0.5) { (x, y, z) -> () in
             values(x, y, z)
             self.stopDeviceMotionUpdates()
         }
     }
 
-    public func getGravitationalAccelerationAtCurrentInstant (_ values: @escaping (_ x:Double, _ y:Double, _ z:Double) -> ()){
+    open func getGravitationalAccelerationAtCurrentInstant (_ values: @escaping (_ x:Double, _ y:Double, _ z:Double) -> ()){
         self.getGravityAccelerationFromDeviceMotion(0.5) { (x, y, z) -> () in
             values(x, y, z)
             self.stopDeviceMotionUpdates()
         }
     }
 
-    public func getAttitudeAtCurrentInstant (_ values: @escaping (_ attitude: CMAttitude) -> ()){
+    open func getAttitudeAtCurrentInstant (_ values: @escaping (_ attitude: CMAttitude) -> ()){
         self.getAttitudeFromDeviceMotion(0.5) { (attitude) -> () in
             values(attitude)
             self.stopDeviceMotionUpdates()
         }
     }
 
-    public func getMageticFieldAtCurrentInstant (_ values: @escaping (_ x:Double, _ y:Double, _ z:Double) -> ()){
+    open func getMageticFieldAtCurrentInstant (_ values: @escaping (_ x:Double, _ y:Double, _ z:Double) -> ()){
         self.getMagneticFieldFromDeviceMotion(0.5) { (x, y, z, accuracy) -> () in
             values(x, y, z)
             self.stopDeviceMotionUpdates()
         }
     }
 
-    public func getGyroValuesAtCurrentInstant (_ values: @escaping (_ x:Double, _ y:Double, _ z:Double) -> ()){
+    open func getGyroValuesAtCurrentInstant (_ values: @escaping (_ x:Double, _ y:Double, _ z:Double) -> ()){
         self.getRotationRateFromDeviceMotion(0.5) { (x, y, z) -> () in
             values(x, y, z)
             self.stopDeviceMotionUpdates()

    *  Discussion:
    *   Stop accelerometer updates.
    */
    public func stopAccelerometerUpdates(){
        self.manager.stopAccelerometerUpdates()
        print("Accelaration Updates Status - Stopped")
    }

    *   given NSOperationQueue will be cancelled. You can access the retrieved values either by a
    *   Trailing Closure or through a Delgate.
    */
    open func getAccelerometerValues (_ interval: TimeInterval = 0.1, values: ((_ x: Double, _ y: Double, _ z: Double) -> ())? ){
        var valX: Double!
        var valY: Double!
        var valZ: Double!
