fix cycle references with workaround