algo main