Bunch of changes, still need to fix some stuff