expose factory