perform task in background