refactoring init_pop!