add post factory pattern