diff --git a/utils/misc/src/main/java/org/onlab/util/Frequency.java b/utils/misc/src/main/java/org/onlab/util/Frequency.java
index 1ef7113..49eebcb 100644
--- a/utils/misc/src/main/java/org/onlab/util/Frequency.java
+++ b/utils/misc/src/main/java/org/onlab/util/Frequency.java
@@ -72,6 +72,16 @@
      * @param value frequency in KHz
      * @return instance representing the given frequency
      */
+    public static Frequency ofKHz(long value) {
+        return new Frequency(value * KHZ);
+    }
+
+    /**
+     * Returns an instance representing the specified value in KHz.
+     *
+     * @param value frequency in KHz
+     * @return instance representing the given frequency
+     */
     public static Frequency ofKHz(double value) {
         return new Frequency((long) (value * KHZ));
     }
@@ -82,6 +92,16 @@
      * @param value frequency in MHz
      * @return instance representing the given frequency
      */
+    public static Frequency ofMHz(long value) {
+        return new Frequency(value * MHZ);
+    }
+
+    /**
+     * Returns an instance representing the specified value in MHz.
+     *
+     * @param value frequency in MHz
+     * @return instance representing the given frequency
+     */
     public static Frequency ofMHz(double value) {
         return new Frequency((long) (value * MHZ));
     }
@@ -92,6 +112,16 @@
      * @param value frequency in GHz
      * @return instance representing the given frequency
      */
+    public static Frequency ofGHz(long value) {
+        return new Frequency(value * GHZ);
+    }
+
+    /**
+     * Returns an instance representing the specified value in GHz.
+     *
+     * @param value frequency in GHz
+     * @return instance representing the given frequency
+     */
     public static Frequency ofGHz(double value) {
         return new Frequency((long) (value * GHZ));
     }
@@ -102,6 +132,16 @@
      * @param value frequency in THz
      * @return instance representing the given frequency
      */
+    public static Frequency ofTHz(long value) {
+        return new Frequency(value * THZ);
+    }
+
+    /**
+     * Returns an instance representing the specified value in THz.
+     *
+     * @param value frequency in THz
+     * @return instance representing the given frequency
+     */
     public static Frequency ofTHz(double value) {
         return new Frequency((long) (value * THZ));
     }
diff --git a/utils/misc/src/main/java/org/onlab/util/Spectrum.java b/utils/misc/src/main/java/org/onlab/util/Spectrum.java
index ca01c6e..c47a2ae 100644
--- a/utils/misc/src/main/java/org/onlab/util/Spectrum.java
+++ b/utils/misc/src/main/java/org/onlab/util/Spectrum.java
@@ -24,31 +24,31 @@
 public final class Spectrum {
 
     // Center frequency
-    public static final Frequency CENTER_FREQUENCY = Frequency.ofTHz(193.1);
+    public static final Frequency CENTER_FREQUENCY = Frequency.ofGHz(193_100);
 
     // O band (original): 1260 to 1360 nm
-    public static final Frequency O_BAND_MIN = Frequency.ofTHz(220.436);
-    public static final Frequency O_BAND_MAX = Frequency.ofTHz(237.931);
+    public static final Frequency O_BAND_MIN = Frequency.ofGHz(220_436);
+    public static final Frequency O_BAND_MAX = Frequency.ofGHz(237_931);
 
     // E band (extended): 1360 to 1460 nm
-    public static final Frequency E_BAND_MIN = Frequency.ofTHz(205.337);
-    public static final Frequency E_BAND_MAX = Frequency.ofTHz(220.436);
+    public static final Frequency E_BAND_MIN = Frequency.ofGHz(205_337);
+    public static final Frequency E_BAND_MAX = Frequency.ofGHz(220_436);
 
     // S band (short wavelength): 1460 to 1530 nm
-    public static final Frequency S_BAND_MIN = Frequency.ofTHz(195.943);
-    public static final Frequency S_BAND_MAX = Frequency.ofTHz(205.337);
+    public static final Frequency S_BAND_MIN = Frequency.ofGHz(195_943);
+    public static final Frequency S_BAND_MAX = Frequency.ofGHz(205_337);
 
     // C band (conventional): 1530 to 1565 nm
-    public static final Frequency C_BAND_MIN = Frequency.ofTHz(191.561);
-    public static final Frequency C_BAND_MAX = Frequency.ofTHz(195.943);
+    public static final Frequency C_BAND_MIN = Frequency.ofGHz(191_561);
+    public static final Frequency C_BAND_MAX = Frequency.ofGHz(195_943);
 
     // L band (long wavelength): 1565 to 1625 nm
-    public static final Frequency L_BAND_MIN = Frequency.ofTHz(184.488);
-    public static final Frequency L_BAND_MAX = Frequency.ofTHz(191.561);
+    public static final Frequency L_BAND_MIN = Frequency.ofGHz(184_488);
+    public static final Frequency L_BAND_MAX = Frequency.ofGHz(191_561);
 
     // U band (ultra-long wavelength): 1625 to 1675 nm
-    public static final Frequency U_BAND_MIN = Frequency.ofTHz(178.981);
-    public static final Frequency U_BAND_MAX = Frequency.ofTHz(184.488);
+    public static final Frequency U_BAND_MIN = Frequency.ofGHz(178_981);
+    public static final Frequency U_BAND_MAX = Frequency.ofGHz(184_488);
 
     private Spectrum() {
     }
