possibly removing cyclic dependency