Document every method (public, private and internal) and any code block/section that is non-intuitive/non-obvious or complex.