stronger type safety for the core output options