radio: refactoring