refactor post factories