all requirements of homework8 implemented