Added a lot of stuff and lots of modifications
Big update, it has been a while since I committed