Add Party model and factory method