Symbolizing keys so from_hash does not have to duplicate so much of the constructor methods.
Service provider is now mandatory.