implement adding and removing states. away extension uses states now.