Refactor more code to split ASR handling into separate classes