added in freewall.js, save functionality, and dynamic canvas