manual parsing instead of hrd