removing circular dependencies