We need to avoid switching on all different possible types here.