put object and collection factories back into constructor