Improved the public API a bit by replacing T[] with IList<T>