recursion protection
better background task running