add some initial state querying, so we can do incremental, state based, discrete update