Is there an efficient way to make an part tween just back and fourth?

So, I just want to simply be able to make a part move back and fourth (via tweens), however it seems tougher than I thought. Here’s what I have so far with “primary” being the part:

I’ve decided to use RightVector because when I try to use CFrame, it always rotates when I tween it back to its starting position. I also want to be able to reuse this code for different parts, so I don’t want to use a specific location to tween to. Despite this “functionable” piece of code I have up here, I still have a problem. When it tweens back, it goes further than its original position. If anyone can tell me how I can just simply have a reuseable tween code that goes back a forward that would be perfect. I don’t specifically need it to use RightVector property so if you have any suggestions please let me know!

This will create a tween that will go back and forth when you call :Play() on it. If you want it to do it forever, then change the 0 in TweenInfo to -1

local TweenService = game:GetService("TweenService")

local tweenInfo = TweenInfo.new(1, Enum.EasingStyle.Linear, Enum.EasingDirection.Out, 0, true)
local tweenPart = TweenService:Create(primary, tweenInfo, {CFrame = primary.CFrame + primary.CFrame.RightVector * 15})

If for some reason you need to have both tween functions, then you can use your same code but simpler:

local TweenService = game:GetService("TweenService")

local tweenInfo = TweenInfo.new(1, Enum.EasingStyle.Linear)
local tweenTo = TweenService:Create(primary, tweenInfo, {CFrame = primary.CFrame + primary.CFrame.RightVector * 15})
local tweenBack = TweenService:Create(primary, tweenInfo, {CFrame = primary.CFrame})

Ohhhh! I realized why it went farther back now lol. Thank you so much