get rid of hard code Factory