Cleanup: cleaned guard.js and moved heat to own file