split out tasks (finally)