better SAM parser