reads up to thousands