put all gui components into anonymous namespace, refactored accordingly