Refactored V1 for V2