UHHHHHHHHHHHHHH LONG AND LAZY POST DONE!!!1