refactor simulation data to be an interface 
also move loading data from file into it's implementation's constructor

this is in preperation for adding a class that refrences a file for CSV
data, to allow for dealing with HUGE datasets that can't be held in RAM
comfortably