lessons on delegate