Created FunctionListener and FunctionExecutor to allow running functions in separate threads. Made FunctionParam object to condense parameters being passed to the run method of Function class. Need to figure out better design for communication between Function, FunctionExecutor and classes that use FunctionExecutor