implemented party model