fixed a circular dependency