Add simple factory, complile stricted