impelemnt visiter, rename files