why is `startPos` passed as a variable but `angle` derived from the unit?