extract method
Optimise by limiting construction of new collections