pass array by name so it can be used like a reference
junked out -- this abstraction allows more flexibility but doesn't really fit the scope of the project -- reverting to old process