Move task model into its own file