base functions & background done