some improovement, multihit added