changed a lot of stuffs