         // NOOP if they don't exist
         let nthWaypoint = "" // TODO, add correct waypoint counting
         let destination = (step.destinations ?? "").components(separatedBy: ",")[0]
-        let exit = step.maneuver.exit ?? 1 // TODO: ordinalize
+        let exit = step.maneuverExit ?? 1 // TODO: ordinalize
         let modifierConstant =
             ((self.instructions.object(forKey: "constants") as! NSDictionary)
             .object(forKey: "modifier") as! NSDictionary)

            .replacingOccurrences(of: "{way_name}", with: wayName)
            .replacingOccurrences(of: "{destination}", with: destination)
            .replacingOccurrences(of: "{exit_number}", with: String(exit))
            .replacingOccurrences(of: "{rotary_name}", with: step.rotary_name ?? "")
            .replacingOccurrences(of: "{lane_instruction}", with: "") // TODO: implement correct lane instructions
            .replacingOccurrences(of: "{modifier}", with: modifierConstant)
            .replacingOccurrences(of: "{direction}", with: "") // TODO: integrate actual direction

        self.init(version: version, instructions: plist!)
    }
    
    func compile(step: OSRMStep) -> String? {
        let modifier = step.maneuverModifier
        var type = step.maneuverType

        if (type != "depart" && type != "arrive" && modifier == nil) {
            // TODO: How to throw error here?
