assigment 4, 9.11 out of 10 ;)