Some improvements

check the diff