add factory class
update