Button image duplicating pygame!

I created class Button with hover method that change button image:

class Button:
    def __init__(self, master, img, width, height, x,y,text,color, font = font):
        self.font = font
        self.surface = pg.Surface((width,height),pg.SRCALPHA, 32)
        self.surface = self.surface.convert_alpha()
        self.img = img
        self.img = pg.transform.scale(self.img, (width, height))
        self.rect = self.surface.get_rect()
        self.rect.topleft = (x,y)
        self.master = master
        self.button_text = text
        self.text = self.font.render(self.button_text, True, color)
        self.text_rect = self.text.get_rect()
        self.text_rect.center = self.surface.get_rect().center
        self.width = width
        self.height = height
    def draw(self):
        self.img = pg.transform.scale(self.img, (self.width, self.height))
        self.surface.blit(self.img, (0,0))
        self.surface.blit(self.text, self.text_rect)
        self.master.blit(self.surface, self.rect)
    def hover(self, img, imgh):
        pos = pg.mouse.get_pos()

        if self.rect.collidepoint(pos):
            self.img = imgh
            return True
            self.img = img
            return False

    def click(self, event):

        if self.hover():
            if event.type == pg.MOUSEBUTTONDOWN and event.button == 1:
                return True
                return False

    btn= Button(window, button_img, 320,186,900,300,"Text on Button",(255,255,255), font=font)
    runScene = True 
    while runScene:

        for event in pygame.event.get():
            if event.type == pygame.QUIT: 
                runScene = False



I created an instance of Button - btn, indicated button_img andbutton_img_hover.

Unfortunately button image not change it’s duplicating and overlaying. Any guess?