first version (All UI except graph part) second version (updata UI) third version (finish nearly all the UI function, including drawing lines and circles, except the function to throw out exception) fourth version (finish the part with dll)