add engage logic and model