Redefine reset in terms of update and empty
Redesign -index to dispatch off aspects
Change indexes to use inheritance

Replace empty-state, empty and reset with state function.