add some new factory