use pure generators to create dictionary