perform improovements