added shading assumption and initial_adopters, corrected population_count