fixed bug - do not persist value after calling setValue
refactor names, packages
refactor data structure & data flow