finished version. Add some css, fix some bugs(maybe all)