`Work<Object>`? 

What about `SearchWorkCreator<T>` and have something like: `Collection<Work<T>> createWorks(T value,...`?

Does that makes sense?