add state diagram to outline how it will work
add state labels