more comments and precize code