First final edition! (statistics and refactoring added)