lots of changes, probably broke some things lol