TabController API cleanup