last improving doesn't seems to work, go back to previous code