detailed parser