Tabs component

closes #31