refactoring vio