some modifiction