some work on edges, and model update