reimplement rename method ok