now using the passed in opts hash as an interface for the class which allows a single instance to more easily be reused; next up, freezing the @opts hash to make sure that the interface is obeyed rather than abused