add comments for the main methods