scan -> parse