tabs: Make tabs more generic and dynamic