fixed circular dependency