task #4, 5 and 6