refine architecture & refine IOTButton