refactor to voice state