background functions