added a bunch of changes