Moved everything over from Poof and updated js so it passes linting