some modificaiton