use inheirted in place of Iterable<T> ina  few places