title: CoronaSDK Director Error
body: <p>I am currently writing a cross platform app using the CoronaSDK and Lua. I am using the director package to change scenes. However I am getting the following error:</p>
  
  <p>"Director ERROR: Failed to execute new(params) function on 'startUp'." </p>
  
  <p>I know the error is coming from my main class. Which is:</p>
  
  <pre><code>-----------------------------------------------------------------------------------------
  --
  -- main.lua
  --
  -----------------------------------------------------------------------------------------
  
  local director = require("director")
  local mainGroup = display.newGroup()
  splash = display.newImage("images/logo.png")
  
  local main = function()
  
      splash:removeSelf()
      splash = nil
      mainGroup:insert(director.directorView)
      local widget = require "widget"
  
      -- show default status bar (iOS)
      display.setStatusBar(display.DefaultStatusBar)
  
      local mainGroup = display.newGroup()
  
      -- event listeners for tab buttons:
      local function onFirstView( event )
          director:changeScene("startUp")
      end
  
      local function onSecondView( event )
          director:changeScene("home")
      end
  
      -- table to setup buttons
      local tabButtons = {
          { label="Home", up="icon1.png", down="icon1-down.png", width = 32, height = 32, onPress=onFirstView, selected=true },
          { label="Cards", up="icon2.png", down="icon2-down.png", width = 32, height = 32, onPress=onSecondView },
      }
  
      -- create the actual tabBar widget
      local tabBar = widget.newTabBar{
          top = display.contentHeight,
          buttons = tabButtons
      }
  
      --I think it is this line which is causing the error
      director:changeScene("startUp")
  
      return true
  end
  
  timer.performWithDelay(3000, main, 1)
  </code></pre>
  
  <p>Here is my startUp.lua file:</p>
  
  <pre><code>module(..., package.seeall)
  
  function new()
      require "sqlite3"
      local director = require("director")
      --Connect to database or create it.
      --Each user gets there own database****
      local path = system.pathForFile("data.db", system.DocumentsDirectory)
      local db = sqlite3.open(path)
  
      --Create the database table if it does not already exist
      local tablesetup = [[CREATE TABLE IF NOT EXISTS User (id Integer autoincrement PRIMARY KEY, firstname, lastname);]]
      db:exec(tablesetup)
  
      for row in db:nrows("SELECT * FROM User") do
          --goto home if the user is in the database.
          director.changeScene("home")
      end
  
      --If not in the database go to forms
      director.changeScene("forms")
  
      --Catch application Exit
      Runtime:addEventListener("system", onSystemEvent)
  
      --Handle application exit - close the database connection
      local function onSystemEvent(event)
          if(event.type == "applicationExit") then
              db:close()
          end
          print("database closed")
      end
  
  end
  </code></pre>
  
  <p>Here is the error I get in the console:</p>
  
  <pre><code>Runtime Error director.lua:1092:attempt to call method 'insert' (a nil value) 
  stack traceback: in function 'insert' in function 'changeScene'
  ---------------
  Director Error: Failed to execute new(params) function on 'startUp'.
  ---------------
  assertion failed
  ---------------
  </code></pre>