Make names clearer
Use topological sort to do axis dependencies