Pass task struct
Use interface