first version, success to compile and running, no testcases.