Use canvas Layering to separate things that need to be cleaned and those that dont.
restructured the state initialization a little