made some structs.

They're not tested or compiled, but I need to move to my desktop for
more committed internet connection. It occurred to me that we could put
the smoothing functionality in the classes as methods instead of having
it be a separate function.