finish program. but still not passed the compile