breaking dependency cycle