finished ,but still not perfect