add gd factory