add list script
refactor BaseModel and add city model