Final commit, fixed sooooooooooooooooooooooooooooooooooo many bugs.