[fix] ensure factory is called asynchronously