modified for propagate edge types, waiting for debug