implement Ding, but somthing not right