https://medium.com/@maxheadway/the-differences-between-the-spread-and-rest-operators-in-javascript-c0e55b330bf8