almost final code test 2 need debug