fixed visitor reflect function