modifed code