second generation of documentation with some extra code