This is project1 finished, with a test program