More flexible protocol through union