+ topological ordering
* living unit test