Created an abstract class
This will provide common functionality to both the main classes
Currently just provides a way to handle an associative array of options passed to a method (simulating named parameters)
Added a new method to ensure the parameter is an array
Rather than checking if a value is an array, and then doing something if not, we use this method to just ensure we are working with an array, so that an array function/statement (such as foreach) will not throw an error/warning