Changed passing of options to an object to reduce complexity in adding additional options

For the pull requests I'm working on I'm adding additional options flags which is only make things more complex to send data to the run method. So, I changed the run method to take an options object instead. This will make adding new options much easier.