changed callTabs to be more inheritance-based and added some things