Commented all the functions