almost completed everything
v2