move header to fix circular dependency