implement workflow for equals