moved device detections to parser class