Add Comments and Clean code