tasks use promises now!