set up background tasks...needs testing