wip: state objects

This may get deleted later, still working through the details.