added get_state, set_state, etc.
stuff