refactor
v2 complete!