more explicit depends tracking