simplify states
move json stuff to it's own module
refers
add new modules
checkpoint