add factory method, forge.