generic public key factory moved