Perhaps a Todolist should have a completed() method returning a CompletedTodolist?