work on saving state across operations