follow logic working