more instructions and a way of doing state in io