Updated with line-by-line documentation