adding delegate event feature