Up to task 4b event driven