finish ex3, no test for ex3 yet