Moved JS and CSS into their own files for maintainability