implemented background runner