Added recursive parsing: DPI hopefully complete :P