changed std::vector<T> to T; supporting lists etc...