commented all methods