add background processing