in the process of making a seperate function to gather data according to the options. unfinished.