started adding generics to internal bus