default to None when public_key is not supplied