def __init__(self, initial_state, **states):
super().__init__()<EOL>self._current_state = initial_state<EOL>self._previous_state = initial_state<EOL>self._states = {}<EOL>self.add_states(**states)<EOL>
Initialize a deck.

The `initial_state` argument is the name of the state that the deck 
will begin in.  This can be changed at any time by calling 
`set_state()`.  Keyword arguments can be used to associate an initial 
set of states (keys) with widgets (values).  

Note that while you must specify the initial state, you don't need to 
immediately provide a widget that state (or any other state).  For 
example:

>>> d = glooey.Deck('base')
>>> d.add_state('base', widget)