user 2 modification
seconde try by user2