dev ...
Big change:

1. split solver into assigner and worker
2. many others