Add village algorithm