added a ton of changes