added a bunch of stuff here and there