some overhual for UI