finish exercise 1.1
finish exercise 1.2
exercise 1.3 & functions for unit test