resolve dependency cycle