add District model
ensure validity of polygons
add initialize districts