add more coments to the code