not finish yet, but just make it works

not finish yet, but just make it works