Updated with more coments