Improve robusteness of the parser
switch to shared_ptr -> ICE