major changes

not tested