almost clean, but main app need to be consummate