Added a bunch of stuff... I know this is a bad commit message I'll improve I promise