New task API