A man charged Tuesday with killing a 2-year-old boy, whose dismembered body was found in a Chicago lagoon last year, “snapped” when the lactose-intolerant boy cried for hours after being fed milk, police said.

Kamel Harris, 41, of Rockford, Illinois, has been charged with murder, concealment of a homicide and dismemberment of a human being in the death of Kyrian Knox. He is being held without bond.

CBS News reported that Kyrian's grandmother, Cameshia Harris, said she hopes her grandson's killer "rots in jail." She was stunned by the alleged motive for the toddler's death.

"And that's a reason to kill a baby?" Harris said. "And dismember him? And throw him away like he was nothing?"

The Chicago Tribune reported that the toddler's mother left him in the care of Harris and his girlfriend on Aug. 19, 2015, while she went through the process of moving to Iowa with Harris' daughter, her best friend.

The Tribune reported that both women left their children with Harris and his girlfriend while moving their belongings. Harris’ grandchild, also 2, was not injured.

By the end of the month, Harris had stopped responding to the woman's calls or texts, prosecutors said. The newspaper reported that he made a chilling phone call on Aug. 31 in which he told the person on the other end what he had done.

Investigators believed that Harris disposed of the boy’s body that same day, using a borrowed car to drive the body to Chicago, cut up his remains and drop them, wrapped in plastic bags tied to barbells, into Garfield Park Lagoon. They believed he chose the location because he has family living in the area.

Kyrian's remains were discovered five days later after a passerby spotted a small foot floating in Garfield Park Lagoon, the Tribune reported. The boy's other foot and his hands were found washed up on the shoreline.

The next day, police found his head, the Tribune said.

"It was pretty difficult to deal with," Chicago Police Marine Unit Sgt. Angel Romero told the newspaper. "Probably one of the most difficult things I've dealt with in my 29 years on the job."

Harris initially told police that Kyrian was missing but changed his story and said he'd given the boy to people he thought were friends of the boy's mother, the Tribune said.

He also told police at the time that Kyrian had never been in the Camaro he’d borrowed.

The turning point in the case came this summer when blood found on the carpet inside the Camaro was identified as belonging to Kyrian.

Police told the newspaper that Harris also confessed to at least one other person that he was angry because Kyrian’s mother hadn’t given him more money to care for the boy.

Harris is being held without bond, the Tribune reported.