added generics
Added buffering
Added string instrumentationQ