Bunch of updates, need refactor