Hi guys,
Can you help me with below “level.lua” code 
What should I do that when I hit “backBtn” level.lua display objects are deleted from memory?
In below configuration, when I hit “backBtn” I navigate back to menu.lua, but unfortunately level.lua memory is not deleted 
local composer = require( "composer" ) local scene = composer.newScene() -- ----------------------------------------------------------------------------------------------------------------- -- All code outside of the listener functions will only be executed ONCE unless "composer.removeScene()" is called. -- ----------------------------------------------------------------------------------------------------------------- display.setStatusBar(display.HiddenStatusBar) -- most commonly used screen coordinates local centerX = display.contentCenterX local centerY = display.contentCenterY local screenLeft = display.screenOriginX local screenWidth = display.viewableContentWidth - screenLeft \* 2 local screenRight = screenLeft + screenWidth local screenTop = display.screenOriginY local screenHeight = display.viewableContentHeight - screenTop \* 2 local screenBottom = screenTop + screenHeight ---------------------------------------------------------------- local physics = require("physics") math.randomseed( os.time() ) --------------------------------------------------------------- GAME CHOICE local SpritesBallons = require("spriteBallons") local whichPlayer physics.start() physics.setGravity(0, 10) physics.setDrawMode( "normal" ) local previousScene = composer.getSceneName( "previous" ) if(previousScene~=nil) then composer.removeScene(previousScene) print("PREVIOUS SCENE REMOVED: " .. previousScene) end local memTimer local driftToRight local spawnTimer local createLeftBallons local function goSomewhere(event) local goto = event.target.id local options = {effect="crossFade", time=300} composer.gotoScene( goto, menu ) end local function setUpDisplay(grp) local bg = display.newRect( grp, screenLeft, screenTop, screenWidth, screenHeight ) bg.x = centerX bg.y = centerY bg:setFillColor(1, 0.68, 0.26) local title = display.newText( grp, "Level Scene", centerX, centerY, "Helvetica", 48 ) local ground = display.newRect( grp, screenLeft, screenBottom, screenWidth\*3, 30 ) ground:setFillColor(1, 0.03, 0.02) ground.objType = "ground" physics.addBody ( ground, "static", {density=1, friction=0, bounce=0}) local backBtn = display.newImageRect ( grp, "images/backbtn.png", 53, 52) backBtn.x = screenLeft +backBtn.width\*0.5 backBtn.y = screenTop + backBtn.height\*0.5 backBtn.id="menu" backBtn:addEventListener("tap", goSomewhere) end ----------------------------- CHECK MEMORY local function checkMemory() collectgarbage( "collect" ) local memUsage\_str = string.format( "MEMORY = %.3f KB", collectgarbage( "count" ) ) print( memUsage\_str, "TEXTURE "..(system.getInfo("textureMemoryUsed") / (1024 \* 1024) ) ) end -------------------------------------------------- CHECK MEMORY -- "scene:create()" function scene:create( event ) local sceneGroup = self.view -- Initialize the scene here. -- Example: add display objects to "sceneGroup", add touch listeners, etc. setUpDisplay(sceneGroup) function createLeftBallons(myGroup) local sprite\_info\_baloon1 = SpritesBallons[math.random(#SpritesBallons)] local tmp = display.newSprite( sprite\_info\_baloon1.image\_sheet, sprite\_info\_baloon1.sequence\_data ) tmp.x = screenLeft-tmp.width tmp.y = math.random((screenTop - tmp.height), (screenBottom-100)) myGroup:insert(tmp) tmp:setSequence("flyLR") tmp:play() local times = math.random(1000, 3000) driftToRight = transition.to ( tmp, { time = times , x = (screenRight+(tmp.width\*2)), y= screenRight+100 } ) return tmp end function whichPlayer() createLeftBallons(sceneGroup) end end -- "scene:show()" function scene:show( event ) local sceneGroup = self.view local phase = event.phase if ( phase == "will" ) then -- Called when the scene is still off screen (but is about to come on screen). elseif ( phase == "did" ) then -- Called when the scene is now on screen. -- Insert code here to make the scene come alive. -- Example: start timers, begin animation, play audio, etc. memTimer = timer.performWithDelay( 1000, checkMemory, 0 ) spawnTimer = timer.performWithDelay ( 2000, whichPlayer, -1 ) end end -- "scene:hide()" function scene:hide( event ) local sceneGroup = self.view local phase = event.phase if ( phase == "will" ) then -- Called when the scene is on screen (but is about to go off screen). -- Insert code here to "pause" the scene. -- Example: stop timers, stop animation, stop audio, etc. physics.stop( ) timer.cancel ( memTimer ) timer.cancel ( spawnTimer ) elseif ( phase == "did" ) then -- Called immediately after scene goes off screen. end end -- "scene:destroy()" function scene:destroy( event ) local sceneGroup = self.view -- Called prior to the removal of scene's view ("sceneGroup"). -- Insert code here to clean up the scene. -- Example: remove display objects, save state, etc. display.remove( grp ) grp = nil display.remove( myGroup ) myGroup = nil display.remove( sceneGroup ) sceneGroup = nil end -- ------------------------------------------------------------------------------- -- Listener setup scene:addEventListener( "create", scene ) scene:addEventListener( "show", scene ) scene:addEventListener( "hide", scene ) scene:addEventListener( "destroy", scene ) -- ------------------------------------------------------------------------------- return scene
Many, many thanks! 
Ivan