added a bunch of other junk that I guess is necessary