add persistence framework
put commands in IO