changed Vec3's add method to return type void, should be more efficient. also added overload for directly providing x y z params