Made a lot of changes, close to being done