def createPop(self, popsize):

        import createInd

        pop = []

        # template individual
        tree_genome = self.params["template"]
        new_ind = Individual(self.random, None, genome=tree_genome)
        self.decodePlan(new_ind)
        new_ind.rank = 1
        new_ind.crowded_distance = 100
        pop.append(new_ind)

        for i in xrange(popsize - 1):
            tree_genome = createInd.createIndividual(
                self.params["maxDepth"], self.params["maxRoom"], self.params["minRoom"]
            )
            new_ind = FloorplanIndividual(self.random, None, genome=tree_genome)
            self.decodePlan(new_ind)
            pop.append(new_ind)

        return pop