Background processing done right, finally