add job factory
this whole caching is fuuucked