Clean up alternatives provider

Fix a few issues with the alternatives provider and resource/provider constructors.