factory pattern umgesetzt