line recognizer