V3 refactoring