     
     @IBAction func didTapScreen(_ sender: UITapGestureRecognizer) { // fire bullet
         let bulletsNode = Bullet()
-        bulletsNode.position = SCNVector3(0, 0, -0.2) // SceneKit/AR coordinates are in meters
-        
-        let bulletDirection = self.getUserDirection()
+        
+        let (direction, position) = self.getUserVector()
+        bulletsNode.position = position // SceneKit/AR coordinates are in meters
+        
+        let bulletDirection = direction
         bulletsNode.physicsBody?.applyForce(bulletDirection, asImpulse: true)
         sceneView.scene.rootNode.addChildNode(bulletsNode)
         

    // MARK: - Game Functionality
    
    func configureSession() {
        if utsname().hasAtLeastA9() { // checks if user's device supports the more precise ARWorldTrackingSessionConfiguration
            
        // Create a session configuration
        let configuration = ARWorldTrackingSessionConfiguration()
        configuration.planeDetection = ARWorldTrackingSessionConfiguration.PlaneDetection.horizontal

        node.removeFromParentNode()
    }
    
    func getUserVector() -> (SCNVector3, SCNVector3) { // (direction, position)
        if let frame = self.sceneView.session.currentFrame {
            let mat = SCNMatrix4FromMat4(frame.camera.transform)
            let dir = SCNVector3(-1 * mat.m31, -1 * mat.m32, -1 * mat.m33)
            let pos = SCNVector3(mat.m41, mat.m42, mat.m43)
            
            return (dir, pos)
        }
        return (SCNVector3(0, 0, -1), SCNVector3(0, 0, -0.2))
    }
    
    func floatBetween(_ first: Float,  and second: Float) -> Float {
