fix circular dependency