restructure + persistant variable work