add header file and problem 2.1-2.3