bunch of new changes