Could you make both? Default to mutable, and use VectorConst ( insert better name ) where needed. .offset = Vector3Const(1,2,3) .vel = Vector3( offset ) (throw exception when you try to modify a const vector?) -- Jake