Refactor for v2 Part 1