Why use a recursive task?