final version of the code
clean
final version of the code