add purefactory