final version: tests tests 1,2,3 b wroking