add Scanner type and state