added and changed a lot of test