"""PWMOut Class for NXP LPC4330"""
 
 from greatfet import GreatFET
-from greatfet.interfaces.pattern_generator import PatternGenerator
 
 try:
     from microcontroller.pin import pwmOuts
 except ImportError:
-    raise RuntimeError("No PWM outputs defined for this board")
-
-from microcontroller.pin import Pin
-
+    raise RuntimeError("No PWM outputs defined for this board") from ImportError
 
 # pylint: disable=unnecessary-pass
 class PWMError(IOError):
         self._gf = GreatFET()
 
         if variable_frequency:
-            raise NotImplemented("Variable Frequency is not currently supported.")
+            raise NotImplementedError("Variable Frequency is not currently supported.")
 
         self._pattern = None
         self._channel = None
         self._enable = False
+        self._frequency = 500
+        self._duty_cycle = 0
         self._open(pin, duty_cycle, frequency)
 
     def __enter__(self):
     duty_cycle = property(_get_duty_cycle, _set_duty_cycle)
 
     def _get_frequency(self):
-        return int(PWMOut._nova.getIOpinPWMFreq(self._pwmpin).split("PWMFREQ ")[1])
+        return self._frequency
 
     def _set_frequency(self, frequency):
         """Get or set the PWM's output frequency in Hertz.
 
         # We are sending 1024 samples per second already
         self._gf.pattern_generator.set_sample_rate(frequency * len(self._pattern))
+        self._frequency = frequency
 
     frequency = property(_get_frequency, _set_frequency)