made jshint settings more strict, moved some functions and files around to keep function sizes and file sizes reasonable