snapshot before toJSON changed

toArray function will be made and called first before toJSON. This allows more functionality from the process in case the library is used for something else.

a new function to remove data beyond the bounds of the column heading row has been added; not fully tested