parse input directly