add factory pool to reuse and preload for reducing loading time