Fix #15: implement ActivityTask model