Commented all code properly