better parse packet