Add BinaryDependencyEdge, continue refactoring