Added in option parser and rearanged classes and methods