diff --git a/src/main/java/com/github/sh0nk/matplotlib4j/Plot.java b/src/main/java/com/github/sh0nk/matplotlib4j/Plot.java
index 823ce8a..81e6117 100644
--- a/src/main/java/com/github/sh0nk/matplotlib4j/Plot.java
+++ b/src/main/java/com/github/sh0nk/matplotlib4j/Plot.java
@@ -15,6 +15,10 @@ static Plot create(PythonConfig pythonConfig) {
         return new PlotImpl(pythonConfig, false);
     }
 
+    CustomBuilder cmd(String key);
+
+    CustomBuilder cmd(String methodPrefix, String key, Boolean returns);
+
     GridBuilder grid();
 
     LegendBuilder legend();
diff --git a/src/main/java/com/github/sh0nk/matplotlib4j/PlotImpl.java b/src/main/java/com/github/sh0nk/matplotlib4j/PlotImpl.java
index 45f7341..8010bbd 100644
--- a/src/main/java/com/github/sh0nk/matplotlib4j/PlotImpl.java
+++ b/src/main/java/com/github/sh0nk/matplotlib4j/PlotImpl.java
@@ -26,6 +26,16 @@ public class PlotImpl implements Plot {
         this(PythonConfig.systemDefaultPythonConfig(), dryRun);
     }
 
+    @Override
+    public CustomBuilder cmd(String key) {
+        return new CustomBuilderImpl(key);
+    }
+
+    @Override
+    public CustomBuilder cmd(String methodPrefix, String key, Boolean returns) {
+        return new CustomBuilderImpl(methodPrefix, key, returns);
+    }
+
     @Override
     public LegendBuilder legend() {
         LegendBuilder builder = new LegendBuilderImpl();
diff --git a/src/main/java/com/github/sh0nk/matplotlib4j/builder/AxLineBuilder.java b/src/main/java/com/github/sh0nk/matplotlib4j/builder/AxLineBuilder.java
index bd80a3f..35d2333 100644
--- a/src/main/java/com/github/sh0nk/matplotlib4j/builder/AxLineBuilder.java
+++ b/src/main/java/com/github/sh0nk/matplotlib4j/builder/AxLineBuilder.java
@@ -1,13 +1,13 @@
 package com.github.sh0nk.matplotlib4j.builder;
 
+import com.github.sh0nk.matplotlib4j.kwargs.KwArgsBuilder;
 import com.github.sh0nk.matplotlib4j.kwargs.Line2DBuilder;
-import java.util.List;
 
 
 /**
  * matplotlib.pyplot.plot(*args, **kwargs)
  */
-public interface AxLineBuilder extends Builder, Line2DBuilder<AxLineBuilder> {
+public interface AxLineBuilder extends Builder, Line2DBuilder<AxLineBuilder>, KwArgsBuilder<AxLineBuilder> {
 
     AxLineBuilder at(Number value);
 
diff --git a/src/main/java/com/github/sh0nk/matplotlib4j/builder/AxLineBuilderImpl.java b/src/main/java/com/github/sh0nk/matplotlib4j/builder/AxLineBuilderImpl.java
index 32350cf..4d49823 100644
--- a/src/main/java/com/github/sh0nk/matplotlib4j/builder/AxLineBuilderImpl.java
+++ b/src/main/java/com/github/sh0nk/matplotlib4j/builder/AxLineBuilderImpl.java
@@ -66,6 +66,31 @@ public AxLineBuilder color(String arg) {
         return line2DBuilder.color(arg);
     }
 
+    @Override
+    public AxLineBuilder addToKwargs(String k, String v) {
+        return innerBuilder.addToKwargs(k, v);
+    }
+
+    @Override
+    public AxLineBuilder addToKwargsWithoutQuoting(String k, String v) {
+        return innerBuilder.addToKwargsWithoutQuoting(k, v);
+    }
+
+    @Override
+    public AxLineBuilder addToKwargs(String k, Number n) {
+        return innerBuilder.addToKwargs(k, n);
+    }
+
+    @Override
+    public AxLineBuilder addToKwargs(String k, List<? extends Number> v) {
+        return innerBuilder.addToKwargs(k, v);
+    }
+
+    @Override
+    public AxLineBuilder addToKwargs(String k, boolean v) {
+        return innerBuilder.addToKwargs(k, v);
+    }
+
     @Override
     public String build() {
         return innerBuilder.build();
diff --git a/src/main/java/com/github/sh0nk/matplotlib4j/builder/BarBuilder.java b/src/main/java/com/github/sh0nk/matplotlib4j/builder/BarBuilder.java
index 6b2370f..8c39da7 100644
--- a/src/main/java/com/github/sh0nk/matplotlib4j/builder/BarBuilder.java
+++ b/src/main/java/com/github/sh0nk/matplotlib4j/builder/BarBuilder.java
@@ -1,5 +1,6 @@
 package com.github.sh0nk.matplotlib4j.builder;
 
+import com.github.sh0nk.matplotlib4j.kwargs.KwArgsBuilder;
 import com.github.sh0nk.matplotlib4j.kwargs.Line2DBuilder;
 import java.util.List;
 
@@ -7,7 +8,7 @@
 /**
  * matplotlib.pyplot.bar(*args, **kwargs)
  */
-public interface BarBuilder extends Builder, Line2DBuilder<BarBuilder> {
+public interface BarBuilder extends Builder, Line2DBuilder<BarBuilder>, KwArgsBuilder<BarBuilder> {
 
     BarBuilder add(List<? extends Number> nums);
 
diff --git a/src/main/java/com/github/sh0nk/matplotlib4j/builder/BarBuilderImpl.java b/src/main/java/com/github/sh0nk/matplotlib4j/builder/BarBuilderImpl.java
index 41d6491..e2038d6 100644
--- a/src/main/java/com/github/sh0nk/matplotlib4j/builder/BarBuilderImpl.java
+++ b/src/main/java/com/github/sh0nk/matplotlib4j/builder/BarBuilderImpl.java
@@ -49,6 +49,31 @@ public BarBuilder color(String arg) {
         return line2DBuilder.color(arg);
     }
 
+    @Override
+    public BarBuilder addToKwargs(String k, String v) {
+        return innerBuilder.addToKwargs(k, v);
+    }
+
+    @Override
+    public BarBuilder addToKwargsWithoutQuoting(String k, String v) {
+        return innerBuilder.addToKwargsWithoutQuoting(k, v);
+    }
+
+    @Override
+    public BarBuilder addToKwargs(String k, Number n) {
+        return innerBuilder.addToKwargs(k, n);
+    }
+
+    @Override
+    public BarBuilder addToKwargs(String k, List<? extends Number> v) {
+        return innerBuilder.addToKwargs(k, v);
+    }
+
+    @Override
+    public BarBuilder addToKwargs(String k, boolean v) {
+        return innerBuilder.addToKwargs(k, v);
+    }
+
     @Override
     public String build() {
         return innerBuilder.build();
diff --git a/src/main/java/com/github/sh0nk/matplotlib4j/builder/Builder.java b/src/main/java/com/github/sh0nk/matplotlib4j/builder/Builder.java
index 6aa5e29..d405157 100644
--- a/src/main/java/com/github/sh0nk/matplotlib4j/builder/Builder.java
+++ b/src/main/java/com/github/sh0nk/matplotlib4j/builder/Builder.java
@@ -3,5 +3,13 @@
 public interface Builder {
     String build();
 
+    default boolean returns() {
+        return true;
+    }
+
+    default String getMethodPrefix() {
+        return "plt.";
+    }
+
     String getMethodName();
 }
diff --git a/src/main/java/com/github/sh0nk/matplotlib4j/builder/CLabelBuilder.java b/src/main/java/com/github/sh0nk/matplotlib4j/builder/CLabelBuilder.java
index b7026db..1420bcc 100644
--- a/src/main/java/com/github/sh0nk/matplotlib4j/builder/CLabelBuilder.java
+++ b/src/main/java/com/github/sh0nk/matplotlib4j/builder/CLabelBuilder.java
@@ -1,6 +1,8 @@
 package com.github.sh0nk.matplotlib4j.builder;
 
-public interface CLabelBuilder extends Builder {
+import com.github.sh0nk.matplotlib4j.kwargs.KwArgsBuilder;
+
+public interface CLabelBuilder extends Builder, KwArgsBuilder<CLabelBuilder> {
 
     CLabelBuilder fontsize(String arg);
 
diff --git a/src/main/java/com/github/sh0nk/matplotlib4j/builder/CLabelBuilderImpl.java b/src/main/java/com/github/sh0nk/matplotlib4j/builder/CLabelBuilderImpl.java
index b08bfe0..add9995 100644
--- a/src/main/java/com/github/sh0nk/matplotlib4j/builder/CLabelBuilderImpl.java
+++ b/src/main/java/com/github/sh0nk/matplotlib4j/builder/CLabelBuilderImpl.java
@@ -1,5 +1,7 @@
 package com.github.sh0nk.matplotlib4j.builder;
 
+import java.util.List;
+
 public class CLabelBuilderImpl implements CLabelBuilder {
 
     private final CompositeBuilder<CLabelBuilder> innerBuilder = new CompositeBuilder<>(this);
@@ -48,6 +50,31 @@ public CLabelBuilder useClabeltext(boolean arg) {
         return innerBuilder.addToKwargs("use_clabeltext", arg);
     }
 
+    @Override
+    public CLabelBuilder addToKwargs(String k, String v) {
+        return innerBuilder.addToKwargs(k, v);
+    }
+
+    @Override
+    public CLabelBuilder addToKwargsWithoutQuoting(String k, String v) {
+        return innerBuilder.addToKwargsWithoutQuoting(k, v);
+    }
+
+    @Override
+    public CLabelBuilder addToKwargs(String k, Number n) {
+        return innerBuilder.addToKwargs(k, n);
+    }
+
+    @Override
+    public CLabelBuilder addToKwargs(String k, List<? extends Number> v) {
+        return innerBuilder.addToKwargs(k, v);
+    }
+
+    @Override
+    public CLabelBuilder addToKwargs(String k, boolean v) {
+        return innerBuilder.addToKwargs(k, v);
+    }
+
     @Override
     public String build() {
         return innerBuilder.build();
diff --git a/src/main/java/com/github/sh0nk/matplotlib4j/builder/CompositeBuilder.java b/src/main/java/com/github/sh0nk/matplotlib4j/builder/CompositeBuilder.java
index 28399e0..89755ce 100644
--- a/src/main/java/com/github/sh0nk/matplotlib4j/builder/CompositeBuilder.java
+++ b/src/main/java/com/github/sh0nk/matplotlib4j/builder/CompositeBuilder.java
@@ -1,6 +1,7 @@
 package com.github.sh0nk.matplotlib4j.builder;
 
 import com.github.sh0nk.matplotlib4j.TypeConversion;
+import com.github.sh0nk.matplotlib4j.kwargs.KwArgsBuilder;
 import com.google.common.base.Joiner;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -14,7 +15,7 @@
  *
  * @param <T> Owner builder class
  */
-public class CompositeBuilder<T extends Builder> implements Builder {
+public class CompositeBuilder<T extends Builder> implements Builder, KwArgsBuilder<T> {
 
     private final static Logger LOGGER = LoggerFactory.getLogger(CompositeBuilder.class);
 
@@ -107,9 +108,10 @@ public String build() {
         }
 
         // retName
-        sb.append(retName).append(" = ");
+        if (ownerBuilder.returns())
+            sb.append(retName).append(" = ");
 
-        sb.append("plt.");
+        sb.append(ownerBuilder.getMethodPrefix());
         sb.append(ownerBuilder.getMethodName());
         sb.append("(");
 
diff --git a/src/main/java/com/github/sh0nk/matplotlib4j/builder/ContourBuilder.java b/src/main/java/com/github/sh0nk/matplotlib4j/builder/ContourBuilder.java
index 8ad803c..365ab6a 100644
--- a/src/main/java/com/github/sh0nk/matplotlib4j/builder/ContourBuilder.java
+++ b/src/main/java/com/github/sh0nk/matplotlib4j/builder/ContourBuilder.java
@@ -1,8 +1,9 @@
 package com.github.sh0nk.matplotlib4j.builder;
 
+import com.github.sh0nk.matplotlib4j.kwargs.KwArgsBuilder;
 import java.util.List;
 
-public interface ContourBuilder extends Builder {
+public interface ContourBuilder extends Builder, KwArgsBuilder<ContourBuilder> {
 
     /**
      * Equivalent to {@code pyplot.contour(Z)}
diff --git a/src/main/java/com/github/sh0nk/matplotlib4j/builder/ContourBuilderImpl.java b/src/main/java/com/github/sh0nk/matplotlib4j/builder/ContourBuilderImpl.java
index e031667..3cec643 100644
--- a/src/main/java/com/github/sh0nk/matplotlib4j/builder/ContourBuilderImpl.java
+++ b/src/main/java/com/github/sh0nk/matplotlib4j/builder/ContourBuilderImpl.java
@@ -48,6 +48,31 @@ public String getRetName() {
         return innerBuilder.getRetName();
     }
 
+    @Override
+    public ContourBuilder addToKwargs(String k, String v) {
+        return innerBuilder.addToKwargs(k, v);
+    }
+
+    @Override
+    public ContourBuilder addToKwargsWithoutQuoting(String k, String v) {
+        return innerBuilder.addToKwargsWithoutQuoting(k, v);
+    }
+
+    @Override
+    public ContourBuilder addToKwargs(String k, Number n) {
+        return innerBuilder.addToKwargs(k, n);
+    }
+
+    @Override
+    public ContourBuilder addToKwargs(String k, List<? extends Number> v) {
+        return innerBuilder.addToKwargs(k, v);
+    }
+
+    @Override
+    public ContourBuilder addToKwargs(String k, boolean v) {
+        return innerBuilder.addToKwargs(k, v);
+    }
+
     @Override
     public String build() {
         return innerBuilder.build();
diff --git a/src/main/java/com/github/sh0nk/matplotlib4j/builder/CustomBuilder.java b/src/main/java/com/github/sh0nk/matplotlib4j/builder/CustomBuilder.java
new file mode 100644
index 0000000..7f852d0
--- /dev/null
+++ b/src/main/java/com/github/sh0nk/matplotlib4j/builder/CustomBuilder.java
@@ -0,0 +1,18 @@
+package com.github.sh0nk.matplotlib4j.builder;
+
+import com.github.sh0nk.matplotlib4j.kwargs.KwArgsBuilder;
+import java.util.List;
+
+public interface CustomBuilder extends Builder, KwArgsBuilder<CustomBuilder> {
+
+    CustomBuilder addToArgs(List<?> objs);
+
+    CustomBuilder add2DimListToArgs(List<? extends List<? extends Number>> numbers);
+
+    CustomBuilder addToArgs(String v);
+
+    CustomBuilder addToArgsWithoutQuoting(String v);
+
+    CustomBuilder addToArgs(Number n);
+
+}
diff --git a/src/main/java/com/github/sh0nk/matplotlib4j/builder/CustomBuilderImpl.java b/src/main/java/com/github/sh0nk/matplotlib4j/builder/CustomBuilderImpl.java
new file mode 100644
index 0000000..78538a6
--- /dev/null
+++ b/src/main/java/com/github/sh0nk/matplotlib4j/builder/CustomBuilderImpl.java
@@ -0,0 +1,93 @@
+package com.github.sh0nk.matplotlib4j.builder;
+
+import java.util.List;
+
+public class CustomBuilderImpl implements CustomBuilder {
+
+    private final CompositeBuilder<CustomBuilder> innerBuilder = new CompositeBuilder<>(this);
+    private final String key;
+    private final String methodPrefix;
+    private final Boolean returns;
+
+    public CustomBuilderImpl(String key) {
+        this(null, key, null);
+    }
+
+    public CustomBuilderImpl(String methodPrefix, String key, Boolean returns) {
+        this.methodPrefix = methodPrefix;
+        this.key = key;
+        this.returns = returns;
+    }
+
+    @Override
+    public CustomBuilder addToArgs(List<?> objs) {
+        return innerBuilder.addToArgs(objs);
+    }
+
+    @Override
+    public CustomBuilder add2DimListToArgs(List<? extends List<? extends Number>> numbers) {
+        return innerBuilder.addToArgs(numbers);
+    }
+
+    @Override
+    public CustomBuilder addToArgs(String v) {
+        return innerBuilder.addToArgs(v);
+    }
+
+    @Override
+    public CustomBuilder addToArgsWithoutQuoting(String v) {
+        return innerBuilder.addToArgsWithoutQuoting(v);
+    }
+
+    @Override
+    public CustomBuilder addToArgs(Number n) {
+        return innerBuilder.addToArgs(n);
+    }
+
+    @Override
+    public CustomBuilder addToKwargs(String k, String v) {
+        return innerBuilder.addToKwargs(k, v);
+    }
+
+    @Override
+    public CustomBuilder addToKwargsWithoutQuoting(String k, String v) {
+        return innerBuilder.addToKwargsWithoutQuoting(k, v);
+    }
+
+    @Override
+    public CustomBuilder addToKwargs(String k, Number n) {
+        return innerBuilder.addToKwargs(k, n);
+    }
+
+    @Override
+    public CustomBuilder addToKwargs(String k, List<? extends Number> v) {
+        return innerBuilder.addToKwargs(k, v);
+    }
+
+    @Override
+    public CustomBuilder addToKwargs(String k, boolean v) {
+        return innerBuilder.addToKwargs(k, v);
+    }
+
+    @Override
+    public String build() {
+        return innerBuilder.build();
+    }
+
+    @Override
+    public boolean returns() {
+        if (returns != null) return returns;
+        return CustomBuilder.super.returns();
+    }
+
+    @Override
+    public String getMethodPrefix() {
+        if (methodPrefix != null) return methodPrefix;
+        return CustomBuilder.super.getMethodPrefix();
+    }
+
+    @Override
+    public String getMethodName() {
+        return key;
+    }
+}
diff --git a/src/main/java/com/github/sh0nk/matplotlib4j/builder/GridBuilder.java b/src/main/java/com/github/sh0nk/matplotlib4j/builder/GridBuilder.java
index b1e319a..fdfffe9 100644
--- a/src/main/java/com/github/sh0nk/matplotlib4j/builder/GridBuilder.java
+++ b/src/main/java/com/github/sh0nk/matplotlib4j/builder/GridBuilder.java
@@ -1,13 +1,14 @@
 package com.github.sh0nk.matplotlib4j.builder;
 
 
+import com.github.sh0nk.matplotlib4j.kwargs.KwArgsBuilder;
 import com.github.sh0nk.matplotlib4j.kwargs.Line2DBuilder;
 import com.github.sh0nk.matplotlib4j.kwargs.TextArgsBuilder;
 
 /**
  * matplotlib.pyplot.grid(b=None, which='major', axis='both', **kwargs)[source]
  */
-public interface GridBuilder extends Builder, TextArgsBuilder<GridBuilder>, Line2DBuilder<GridBuilder> {
+public interface GridBuilder extends Builder, TextArgsBuilder<GridBuilder>, Line2DBuilder<GridBuilder>, KwArgsBuilder<GridBuilder> {
 
     enum WhichType {
         major,
diff --git a/src/main/java/com/github/sh0nk/matplotlib4j/builder/GridBuilderImpl.java b/src/main/java/com/github/sh0nk/matplotlib4j/builder/GridBuilderImpl.java
index 53b2296..f7eb8af 100644
--- a/src/main/java/com/github/sh0nk/matplotlib4j/builder/GridBuilderImpl.java
+++ b/src/main/java/com/github/sh0nk/matplotlib4j/builder/GridBuilderImpl.java
@@ -2,6 +2,7 @@
 
 import com.github.sh0nk.matplotlib4j.kwargs.Line2DBuilder;
 import com.github.sh0nk.matplotlib4j.kwargs.Line2DBuilderImpl;
+import java.util.List;
 
 public class GridBuilderImpl implements GridBuilder {
 
@@ -57,7 +58,30 @@ public GridBuilder color(String arg) {
         return line2DBuilder.color(arg);
     }
 
-    // TODO("Add kwargs")
+    @Override
+    public GridBuilder addToKwargs(String k, String v) {
+        return innerBuilder.addToKwargs(k, v);
+    }
+
+    @Override
+    public GridBuilder addToKwargsWithoutQuoting(String k, String v) {
+        return innerBuilder.addToKwargsWithoutQuoting(k, v);
+    }
+
+    @Override
+    public GridBuilder addToKwargs(String k, Number n) {
+        return innerBuilder.addToKwargs(k, n);
+    }
+
+    @Override
+    public GridBuilder addToKwargs(String k, List<? extends Number> v) {
+        return innerBuilder.addToKwargs(k, v);
+    }
+
+    @Override
+    public GridBuilder addToKwargs(String k, boolean v) {
+        return innerBuilder.addToKwargs(k, v);
+    }
 
     @Override
     public String build() {
diff --git a/src/main/java/com/github/sh0nk/matplotlib4j/builder/HistBuilder.java b/src/main/java/com/github/sh0nk/matplotlib4j/builder/HistBuilder.java
index 07ffd68..e342c87 100644
--- a/src/main/java/com/github/sh0nk/matplotlib4j/builder/HistBuilder.java
+++ b/src/main/java/com/github/sh0nk/matplotlib4j/builder/HistBuilder.java
@@ -1,5 +1,6 @@
 package com.github.sh0nk.matplotlib4j.builder;
 
+import com.github.sh0nk.matplotlib4j.kwargs.KwArgsBuilder;
 import com.github.sh0nk.matplotlib4j.kwargs.PatchBuilder;
 
 import java.util.List;
@@ -8,7 +9,7 @@
 /**
  * matplotlib.pyplot.hist(x, **kwargs)
  */
-public interface HistBuilder extends Builder, PatchBuilder<HistBuilder> {
+public interface HistBuilder extends Builder, PatchBuilder<HistBuilder>, KwArgsBuilder<HistBuilder> {
 
     enum HistType {
         bar,
diff --git a/src/main/java/com/github/sh0nk/matplotlib4j/builder/HistBuilderImpl.java b/src/main/java/com/github/sh0nk/matplotlib4j/builder/HistBuilderImpl.java
index 962bc6b..0747104 100644
--- a/src/main/java/com/github/sh0nk/matplotlib4j/builder/HistBuilderImpl.java
+++ b/src/main/java/com/github/sh0nk/matplotlib4j/builder/HistBuilderImpl.java
@@ -122,6 +122,31 @@ public HistBuilder label(String arg) {
         return patchBuilder.label(arg);
     }
 
+    @Override
+    public HistBuilder addToKwargs(String k, String v) {
+        return innerBuilder.addToKwargs(k, v);
+    }
+
+    @Override
+    public HistBuilder addToKwargsWithoutQuoting(String k, String v) {
+        return innerBuilder.addToKwargsWithoutQuoting(k, v);
+    }
+
+    @Override
+    public HistBuilder addToKwargs(String k, Number n) {
+        return innerBuilder.addToKwargs(k, n);
+    }
+
+    @Override
+    public HistBuilder addToKwargs(String k, List<? extends Number> v) {
+        return innerBuilder.addToKwargs(k, v);
+    }
+
+    @Override
+    public HistBuilder addToKwargs(String k, boolean v) {
+        return innerBuilder.addToKwargs(k, v);
+    }
+
     @Override
     public String build() {
         Preconditions.checkArgument(!xList.isEmpty(), ".add() is needed to be called at least once.");
diff --git a/src/main/java/com/github/sh0nk/matplotlib4j/builder/LabelBuilder.java b/src/main/java/com/github/sh0nk/matplotlib4j/builder/LabelBuilder.java
index e13bc84..fd79ab8 100644
--- a/src/main/java/com/github/sh0nk/matplotlib4j/builder/LabelBuilder.java
+++ b/src/main/java/com/github/sh0nk/matplotlib4j/builder/LabelBuilder.java
@@ -1,5 +1,6 @@
 package com.github.sh0nk.matplotlib4j.builder;
 
+import com.github.sh0nk.matplotlib4j.kwargs.KwArgsBuilder;
 import com.github.sh0nk.matplotlib4j.kwargs.TextArgsBuilder;
 
 
@@ -7,7 +8,7 @@
  * matplotlib.pyplot.xlabel(s, *args, **kwargs)
  * matplotlib.pyplot.ylabel(s, *args, **kwargs)
  */
-public interface LabelBuilder extends Builder, TextArgsBuilder<LabelBuilder> {
+public interface LabelBuilder extends Builder, TextArgsBuilder<LabelBuilder>, KwArgsBuilder<LabelBuilder> {
 
 
 }
diff --git a/src/main/java/com/github/sh0nk/matplotlib4j/builder/LabelBuilderImpl.java b/src/main/java/com/github/sh0nk/matplotlib4j/builder/LabelBuilderImpl.java
index 8f111c1..1321ca6 100644
--- a/src/main/java/com/github/sh0nk/matplotlib4j/builder/LabelBuilderImpl.java
+++ b/src/main/java/com/github/sh0nk/matplotlib4j/builder/LabelBuilderImpl.java
@@ -1,5 +1,7 @@
 package com.github.sh0nk.matplotlib4j.builder;
 
+import java.util.List;
+
 public class LabelBuilderImpl implements LabelBuilder {
 
     private CompositeBuilder<LabelBuilder> innerBuilder = new CompositeBuilder<>(this);
@@ -18,6 +20,31 @@ public static LabelBuilderImpl yLabelBuilder(String label) {
         return new LabelBuilderImpl(label, "ylabel");
     }
 
+    @Override
+    public LabelBuilder addToKwargs(String k, String v) {
+        return innerBuilder.addToKwargs(k, v);
+    }
+
+    @Override
+    public LabelBuilder addToKwargsWithoutQuoting(String k, String v) {
+        return innerBuilder.addToKwargsWithoutQuoting(k, v);
+    }
+
+    @Override
+    public LabelBuilder addToKwargs(String k, Number n) {
+        return innerBuilder.addToKwargs(k, n);
+    }
+
+    @Override
+    public LabelBuilder addToKwargs(String k, List<? extends Number> v) {
+        return innerBuilder.addToKwargs(k, v);
+    }
+
+    @Override
+    public LabelBuilder addToKwargs(String k, boolean v) {
+        return innerBuilder.addToKwargs(k, v);
+    }
+
     @Override
     public String build() {
         return innerBuilder.build();
diff --git a/src/main/java/com/github/sh0nk/matplotlib4j/builder/LegendBuilder.java b/src/main/java/com/github/sh0nk/matplotlib4j/builder/LegendBuilder.java
index 399f3d0..97a504a 100644
--- a/src/main/java/com/github/sh0nk/matplotlib4j/builder/LegendBuilder.java
+++ b/src/main/java/com/github/sh0nk/matplotlib4j/builder/LegendBuilder.java
@@ -1,9 +1,11 @@
 package com.github.sh0nk.matplotlib4j.builder;
 
+import com.github.sh0nk.matplotlib4j.kwargs.KwArgsBuilder;
+
 /**
  * matplotlib.pyplot.legend(*args, **kwargs)
  */
-public interface LegendBuilder extends Builder {
+public interface LegendBuilder extends Builder, KwArgsBuilder<LegendBuilder> {
 
     LegendBuilder loc(int arg);
 
diff --git a/src/main/java/com/github/sh0nk/matplotlib4j/builder/LegendBuilderImpl.java b/src/main/java/com/github/sh0nk/matplotlib4j/builder/LegendBuilderImpl.java
index 5876621..632411a 100644
--- a/src/main/java/com/github/sh0nk/matplotlib4j/builder/LegendBuilderImpl.java
+++ b/src/main/java/com/github/sh0nk/matplotlib4j/builder/LegendBuilderImpl.java
@@ -1,5 +1,7 @@
 package com.github.sh0nk.matplotlib4j.builder;
 
+import java.util.List;
+
 public class LegendBuilderImpl implements LegendBuilder {
 
     private CompositeBuilder<LegendBuilder> innerBuilder = new CompositeBuilder<>(this);
@@ -19,6 +21,31 @@ public LegendBuilder loc(double x, double y) {
         return innerBuilder.addToKwargsWithoutQuoting("loc", String.format("(%d, %d)", x, y));
     }
 
+    @Override
+    public LegendBuilder addToKwargs(String k, String v) {
+        return innerBuilder.addToKwargs(k, v);
+    }
+
+    @Override
+    public LegendBuilder addToKwargsWithoutQuoting(String k, String v) {
+        return innerBuilder.addToKwargsWithoutQuoting(k, v);
+    }
+
+    @Override
+    public LegendBuilder addToKwargs(String k, Number n) {
+        return innerBuilder.addToKwargs(k, n);
+    }
+
+    @Override
+    public LegendBuilder addToKwargs(String k, List<? extends Number> v) {
+        return innerBuilder.addToKwargs(k, v);
+    }
+
+    @Override
+    public LegendBuilder addToKwargs(String k, boolean v) {
+        return innerBuilder.addToKwargs(k, v);
+    }
+
     @Override
     public String build() {
         return innerBuilder.build();
diff --git a/src/main/java/com/github/sh0nk/matplotlib4j/builder/PColorBuilder.java b/src/main/java/com/github/sh0nk/matplotlib4j/builder/PColorBuilder.java
index 1f50309..12f1c21 100644
--- a/src/main/java/com/github/sh0nk/matplotlib4j/builder/PColorBuilder.java
+++ b/src/main/java/com/github/sh0nk/matplotlib4j/builder/PColorBuilder.java
@@ -1,8 +1,9 @@
 package com.github.sh0nk.matplotlib4j.builder;
 
+import com.github.sh0nk.matplotlib4j.kwargs.KwArgsBuilder;
 import java.util.List;
 
-public interface PColorBuilder extends Builder {
+public interface PColorBuilder extends Builder, KwArgsBuilder<PColorBuilder> {
 
     /**
      * Equivalent to {@code pyplot.pcolor(C)}
diff --git a/src/main/java/com/github/sh0nk/matplotlib4j/builder/PColorBuilderImpl.java b/src/main/java/com/github/sh0nk/matplotlib4j/builder/PColorBuilderImpl.java
index 6132c12..50d40c3 100644
--- a/src/main/java/com/github/sh0nk/matplotlib4j/builder/PColorBuilderImpl.java
+++ b/src/main/java/com/github/sh0nk/matplotlib4j/builder/PColorBuilderImpl.java
@@ -48,6 +48,31 @@ public String getRetName() {
         return innerBuilder.getRetName();
     }
 
+    @Override
+    public PColorBuilder addToKwargs(String k, String v) {
+        return innerBuilder.addToKwargs(k, v);
+    }
+
+    @Override
+    public PColorBuilder addToKwargsWithoutQuoting(String k, String v) {
+        return innerBuilder.addToKwargsWithoutQuoting(k, v);
+    }
+
+    @Override
+    public PColorBuilder addToKwargs(String k, Number n) {
+        return innerBuilder.addToKwargs(k, n);
+    }
+
+    @Override
+    public PColorBuilder addToKwargs(String k, List<? extends Number> v) {
+        return innerBuilder.addToKwargs(k, v);
+    }
+
+    @Override
+    public PColorBuilder addToKwargs(String k, boolean v) {
+        return innerBuilder.addToKwargs(k, v);
+    }
+
     @Override
     public String build() {
         return innerBuilder.build();
diff --git a/src/main/java/com/github/sh0nk/matplotlib4j/builder/PlotBuilder.java b/src/main/java/com/github/sh0nk/matplotlib4j/builder/PlotBuilder.java
index 7f70a8c..760903f 100644
--- a/src/main/java/com/github/sh0nk/matplotlib4j/builder/PlotBuilder.java
+++ b/src/main/java/com/github/sh0nk/matplotlib4j/builder/PlotBuilder.java
@@ -1,5 +1,6 @@
 package com.github.sh0nk.matplotlib4j.builder;
 
+import com.github.sh0nk.matplotlib4j.kwargs.KwArgsBuilder;
 import com.github.sh0nk.matplotlib4j.kwargs.Line2DBuilder;
 
 import java.util.List;
@@ -8,7 +9,7 @@
 /**
  * matplotlib.pyplot.plot(*args, **kwargs)
  */
-public interface PlotBuilder extends Builder, Line2DBuilder<PlotBuilder> {
+public interface PlotBuilder extends Builder, Line2DBuilder<PlotBuilder>, KwArgsBuilder<PlotBuilder> {
 
     PlotBuilder add(List<? extends Number> nums);
 
diff --git a/src/main/java/com/github/sh0nk/matplotlib4j/builder/PlotBuilderImpl.java b/src/main/java/com/github/sh0nk/matplotlib4j/builder/PlotBuilderImpl.java
index 90dab0e..d83b4d7 100644
--- a/src/main/java/com/github/sh0nk/matplotlib4j/builder/PlotBuilderImpl.java
+++ b/src/main/java/com/github/sh0nk/matplotlib4j/builder/PlotBuilderImpl.java
@@ -63,6 +63,31 @@ public PlotBuilder color(String arg) {
         return line2DBuilder.color(arg);
     }
 
+    @Override
+    public PlotBuilder addToKwargs(String k, String v) {
+        return innerBuilder.addToKwargs(k, v);
+    }
+
+    @Override
+    public PlotBuilder addToKwargsWithoutQuoting(String k, String v) {
+        return innerBuilder.addToKwargsWithoutQuoting(k, v);
+    }
+
+    @Override
+    public PlotBuilder addToKwargs(String k, Number n) {
+        return innerBuilder.addToKwargs(k, n);
+    }
+
+    @Override
+    public PlotBuilder addToKwargs(String k, List<? extends Number> v) {
+        return innerBuilder.addToKwargs(k, v);
+    }
+
+    @Override
+    public PlotBuilder addToKwargs(String k, boolean v) {
+        return innerBuilder.addToKwargs(k, v);
+    }
+
     @Override
     public String build() {
         return innerBuilder.build();
diff --git a/src/main/java/com/github/sh0nk/matplotlib4j/builder/SaveFigBuilder.java b/src/main/java/com/github/sh0nk/matplotlib4j/builder/SaveFigBuilder.java
index 425544b..2e47757 100644
--- a/src/main/java/com/github/sh0nk/matplotlib4j/builder/SaveFigBuilder.java
+++ b/src/main/java/com/github/sh0nk/matplotlib4j/builder/SaveFigBuilder.java
@@ -1,9 +1,11 @@
 package com.github.sh0nk.matplotlib4j.builder;
 
+import com.github.sh0nk.matplotlib4j.kwargs.KwArgsBuilder;
+
 /**
  * matplotlib.pyplot.savefig(fname, **kwargs)
  */
-public interface SaveFigBuilder extends Builder {
+public interface SaveFigBuilder extends Builder, KwArgsBuilder<SaveFigBuilder> {
 
     enum Orientation {
         horizontal,
diff --git a/src/main/java/com/github/sh0nk/matplotlib4j/builder/SaveFigBuilderImpl.java b/src/main/java/com/github/sh0nk/matplotlib4j/builder/SaveFigBuilderImpl.java
index 6bb93d0..d20232e 100644
--- a/src/main/java/com/github/sh0nk/matplotlib4j/builder/SaveFigBuilderImpl.java
+++ b/src/main/java/com/github/sh0nk/matplotlib4j/builder/SaveFigBuilderImpl.java
@@ -1,5 +1,7 @@
 package com.github.sh0nk.matplotlib4j.builder;
 
+import java.util.List;
+
 public class SaveFigBuilderImpl implements SaveFigBuilder {
 
     private final CompositeBuilder<SaveFigBuilder> innerBuilder = new CompositeBuilder<>(this);
@@ -48,6 +50,31 @@ public SaveFigBuilder bboxInches(double arg) {
         return innerBuilder.addToKwargs("bboxInches", arg);
     }
 
+    @Override
+    public SaveFigBuilder addToKwargs(String k, String v) {
+        return innerBuilder.addToKwargs(k, v);
+    }
+
+    @Override
+    public SaveFigBuilder addToKwargsWithoutQuoting(String k, String v) {
+        return innerBuilder.addToKwargsWithoutQuoting(k, v);
+    }
+
+    @Override
+    public SaveFigBuilder addToKwargs(String k, Number n) {
+        return innerBuilder.addToKwargs(k, n);
+    }
+
+    @Override
+    public SaveFigBuilder addToKwargs(String k, List<? extends Number> v) {
+        return innerBuilder.addToKwargs(k, v);
+    }
+
+    @Override
+    public SaveFigBuilder addToKwargs(String k, boolean v) {
+        return innerBuilder.addToKwargs(k, v);
+    }
+
     @Override
     public String build() {
         return innerBuilder.build();
diff --git a/src/main/java/com/github/sh0nk/matplotlib4j/builder/ScaleBuilder.java b/src/main/java/com/github/sh0nk/matplotlib4j/builder/ScaleBuilder.java
index 1c584a4..c65232f 100644
--- a/src/main/java/com/github/sh0nk/matplotlib4j/builder/ScaleBuilder.java
+++ b/src/main/java/com/github/sh0nk/matplotlib4j/builder/ScaleBuilder.java
@@ -1,12 +1,13 @@
 package com.github.sh0nk.matplotlib4j.builder;
 
+import com.github.sh0nk.matplotlib4j.kwargs.KwArgsBuilder;
 import com.github.sh0nk.matplotlib4j.kwargs.TextArgsBuilder;
 
 /**
  * matplotlib.pyplot.xscale(scale, **kwargs)
  * matplotlib.pyplot.yscale(scale, **kwargs)
  */
-public interface ScaleBuilder extends Builder, TextArgsBuilder<ScaleBuilder> {
+public interface ScaleBuilder extends Builder, TextArgsBuilder<ScaleBuilder>, KwArgsBuilder<ScaleBuilder> {
 
     enum Scale {
         linear,
diff --git a/src/main/java/com/github/sh0nk/matplotlib4j/builder/ScaleBuilderImpl.java b/src/main/java/com/github/sh0nk/matplotlib4j/builder/ScaleBuilderImpl.java
index ae7d948..6049bcd 100644
--- a/src/main/java/com/github/sh0nk/matplotlib4j/builder/ScaleBuilderImpl.java
+++ b/src/main/java/com/github/sh0nk/matplotlib4j/builder/ScaleBuilderImpl.java
@@ -1,5 +1,7 @@
 package com.github.sh0nk.matplotlib4j.builder;
 
+import java.util.List;
+
 public class ScaleBuilderImpl implements ScaleBuilder {
 
     private CompositeBuilder<ScaleBuilder> innerBuilder = new CompositeBuilder<>(this);
@@ -18,6 +20,31 @@ public static ScaleBuilderImpl yScaleBuilder(Scale scale) {
         return new ScaleBuilderImpl(scale, "yscale");
     }
 
+    @Override
+    public ScaleBuilder addToKwargs(String k, String v) {
+        return innerBuilder.addToKwargs(k, v);
+    }
+
+    @Override
+    public ScaleBuilder addToKwargsWithoutQuoting(String k, String v) {
+        return innerBuilder.addToKwargsWithoutQuoting(k, v);
+    }
+
+    @Override
+    public ScaleBuilder addToKwargs(String k, Number n) {
+        return innerBuilder.addToKwargs(k, n);
+    }
+
+    @Override
+    public ScaleBuilder addToKwargs(String k, List<? extends Number> v) {
+        return innerBuilder.addToKwargs(k, v);
+    }
+
+    @Override
+    public ScaleBuilder addToKwargs(String k, boolean v) {
+        return innerBuilder.addToKwargs(k, v);
+    }
+
     @Override
     public String build() {
         return innerBuilder.build();
diff --git a/src/main/java/com/github/sh0nk/matplotlib4j/builder/ScatterBuilder.java b/src/main/java/com/github/sh0nk/matplotlib4j/builder/ScatterBuilder.java
index f1ffb04..9079504 100644
--- a/src/main/java/com/github/sh0nk/matplotlib4j/builder/ScatterBuilder.java
+++ b/src/main/java/com/github/sh0nk/matplotlib4j/builder/ScatterBuilder.java
@@ -1,5 +1,6 @@
 package com.github.sh0nk.matplotlib4j.builder;
 
+import com.github.sh0nk.matplotlib4j.kwargs.KwArgsBuilder;
 import com.github.sh0nk.matplotlib4j.kwargs.Line2DBuilder;
 
 import java.util.List;
@@ -8,7 +9,7 @@
 /**
  * matplotlib.pyplot.scatter(*args, **kwargs)
  */
-public interface ScatterBuilder extends Builder {
+public interface ScatterBuilder extends Builder, KwArgsBuilder<ScatterBuilder> {
 
     ScatterBuilder add(List<? extends Number> x);
 
diff --git a/src/main/java/com/github/sh0nk/matplotlib4j/builder/ScatterBuilderImpl.java b/src/main/java/com/github/sh0nk/matplotlib4j/builder/ScatterBuilderImpl.java
index 451d04d..4666aa2 100644
--- a/src/main/java/com/github/sh0nk/matplotlib4j/builder/ScatterBuilderImpl.java
+++ b/src/main/java/com/github/sh0nk/matplotlib4j/builder/ScatterBuilderImpl.java
@@ -75,6 +75,31 @@ public ScatterBuilder plotnonfinite(boolean plotnonfinite) {
         return innerBuilder.addToKwargs("plotnonfinite", plotnonfinite);
     }
 
+    @Override
+    public ScatterBuilder addToKwargs(String k, String v) {
+        return innerBuilder.addToKwargs(k, v);
+    }
+
+    @Override
+    public ScatterBuilder addToKwargsWithoutQuoting(String k, String v) {
+        return innerBuilder.addToKwargsWithoutQuoting(k, v);
+    }
+
+    @Override
+    public ScatterBuilder addToKwargs(String k, Number n) {
+        return innerBuilder.addToKwargs(k, n);
+    }
+
+    @Override
+    public ScatterBuilder addToKwargs(String k, List<? extends Number> v) {
+        return innerBuilder.addToKwargs(k, v);
+    }
+
+    @Override
+    public ScatterBuilder addToKwargs(String k, boolean v) {
+        return innerBuilder.addToKwargs(k, v);
+    }
+
     @Override
     public String build() {
         return innerBuilder.build();
diff --git a/src/main/java/com/github/sh0nk/matplotlib4j/builder/SubplotBuilder.java b/src/main/java/com/github/sh0nk/matplotlib4j/builder/SubplotBuilder.java
index 34af2ea..654af26 100644
--- a/src/main/java/com/github/sh0nk/matplotlib4j/builder/SubplotBuilder.java
+++ b/src/main/java/com/github/sh0nk/matplotlib4j/builder/SubplotBuilder.java
@@ -1,4 +1,6 @@
 package com.github.sh0nk.matplotlib4j.builder;
 
-public interface SubplotBuilder extends Builder {
+import com.github.sh0nk.matplotlib4j.kwargs.KwArgsBuilder;
+
+public interface SubplotBuilder extends Builder, KwArgsBuilder<SubplotBuilder> {
 }
diff --git a/src/main/java/com/github/sh0nk/matplotlib4j/builder/SubplotBuilderImpl.java b/src/main/java/com/github/sh0nk/matplotlib4j/builder/SubplotBuilderImpl.java
index 14287df..68e7189 100644
--- a/src/main/java/com/github/sh0nk/matplotlib4j/builder/SubplotBuilderImpl.java
+++ b/src/main/java/com/github/sh0nk/matplotlib4j/builder/SubplotBuilderImpl.java
@@ -1,5 +1,7 @@
 package com.github.sh0nk.matplotlib4j.builder;
 
+import java.util.List;
+
 public class SubplotBuilderImpl implements SubplotBuilder {
     private final CompositeBuilder<SubplotBuilder> innerBuilder = new CompositeBuilder<>(this);
 
@@ -9,6 +11,31 @@ public SubplotBuilderImpl(int nrows, int ncols, int index) {
         innerBuilder.addToArgs(index);
     }
 
+    @Override
+    public SubplotBuilder addToKwargs(String k, String v) {
+        return innerBuilder.addToKwargs(k, v);
+    }
+
+    @Override
+    public SubplotBuilder addToKwargsWithoutQuoting(String k, String v) {
+        return innerBuilder.addToKwargsWithoutQuoting(k, v);
+    }
+
+    @Override
+    public SubplotBuilder addToKwargs(String k, Number n) {
+        return innerBuilder.addToKwargs(k, n);
+    }
+
+    @Override
+    public SubplotBuilder addToKwargs(String k, List<? extends Number> v) {
+        return innerBuilder.addToKwargs(k, v);
+    }
+
+    @Override
+    public SubplotBuilder addToKwargs(String k, boolean v) {
+        return innerBuilder.addToKwargs(k, v);
+    }
+
     @Override
     public String build() {
         return innerBuilder.build();
diff --git a/src/main/java/com/github/sh0nk/matplotlib4j/builder/TextBuilder.java b/src/main/java/com/github/sh0nk/matplotlib4j/builder/TextBuilder.java
index 8e5ac7d..cae9447 100644
--- a/src/main/java/com/github/sh0nk/matplotlib4j/builder/TextBuilder.java
+++ b/src/main/java/com/github/sh0nk/matplotlib4j/builder/TextBuilder.java
@@ -1,4 +1,6 @@
 package com.github.sh0nk.matplotlib4j.builder;
 
-public interface TextBuilder extends Builder {
+import com.github.sh0nk.matplotlib4j.kwargs.KwArgsBuilder;
+
+public interface TextBuilder extends Builder, KwArgsBuilder<TextBuilder> {
 }
diff --git a/src/main/java/com/github/sh0nk/matplotlib4j/builder/TextBuilderImpl.java b/src/main/java/com/github/sh0nk/matplotlib4j/builder/TextBuilderImpl.java
index a48e197..153656e 100644
--- a/src/main/java/com/github/sh0nk/matplotlib4j/builder/TextBuilderImpl.java
+++ b/src/main/java/com/github/sh0nk/matplotlib4j/builder/TextBuilderImpl.java
@@ -2,6 +2,7 @@
 
 import com.github.sh0nk.matplotlib4j.kwargs.TextArgsBuilder;
 import com.github.sh0nk.matplotlib4j.kwargs.TextArgsBuilderImpl;
+import java.util.List;
 
 public class TextBuilderImpl implements TextBuilder {
 
@@ -15,6 +16,31 @@ public TextBuilderImpl(double x, double y, String s) {
         innerBuilder.addToArgs(s);
     }
 
+    @Override
+    public TextBuilder addToKwargs(String k, String v) {
+        return innerBuilder.addToKwargs(k, v);
+    }
+
+    @Override
+    public TextBuilder addToKwargsWithoutQuoting(String k, String v) {
+        return innerBuilder.addToKwargsWithoutQuoting(k, v);
+    }
+
+    @Override
+    public TextBuilder addToKwargs(String k, Number n) {
+        return innerBuilder.addToKwargs(k, n);
+    }
+
+    @Override
+    public TextBuilder addToKwargs(String k, List<? extends Number> v) {
+        return innerBuilder.addToKwargs(k, v);
+    }
+
+    @Override
+    public TextBuilder addToKwargs(String k, boolean v) {
+        return innerBuilder.addToKwargs(k, v);
+    }
+
     @Override
     public String build() {
         return innerBuilder.build();
diff --git a/src/main/java/com/github/sh0nk/matplotlib4j/builder/TicksBuilder.java b/src/main/java/com/github/sh0nk/matplotlib4j/builder/TicksBuilder.java
index 7cd28e7..12f5e9a 100644
--- a/src/main/java/com/github/sh0nk/matplotlib4j/builder/TicksBuilder.java
+++ b/src/main/java/com/github/sh0nk/matplotlib4j/builder/TicksBuilder.java
@@ -1,5 +1,6 @@
 package com.github.sh0nk.matplotlib4j.builder;
 
+import com.github.sh0nk.matplotlib4j.kwargs.KwArgsBuilder;
 import com.github.sh0nk.matplotlib4j.kwargs.TextArgsBuilder;
 
 import java.util.List;
@@ -9,7 +10,7 @@
  * matplotlib.pyplot.xticks(ticks=None, labels=None, **kwargs)
  * matplotlib.pyplot.yticks(ticks=None, labels=None,  **kwargs)
  */
-public interface TicksBuilder extends Builder, TextArgsBuilder<TicksBuilder> {
+public interface TicksBuilder extends Builder, TextArgsBuilder<TicksBuilder>, KwArgsBuilder<TicksBuilder> {
 
     TicksBuilder labels(List<String> labels);
 }
diff --git a/src/main/java/com/github/sh0nk/matplotlib4j/builder/TicksBuilderImpl.java b/src/main/java/com/github/sh0nk/matplotlib4j/builder/TicksBuilderImpl.java
index 421484a..d56920b 100644
--- a/src/main/java/com/github/sh0nk/matplotlib4j/builder/TicksBuilderImpl.java
+++ b/src/main/java/com/github/sh0nk/matplotlib4j/builder/TicksBuilderImpl.java
@@ -35,6 +35,31 @@ public static TicksBuilderImpl yTicksBuilder(List<? extends Number> ticks) {
         return new TicksBuilderImpl(ticks, "yticks");
     }
 
+    @Override
+    public TicksBuilder addToKwargs(String k, String v) {
+        return innerBuilder.addToKwargs(k, v);
+    }
+
+    @Override
+    public TicksBuilder addToKwargsWithoutQuoting(String k, String v) {
+        return innerBuilder.addToKwargsWithoutQuoting(k, v);
+    }
+
+    @Override
+    public TicksBuilder addToKwargs(String k, Number n) {
+        return innerBuilder.addToKwargs(k, n);
+    }
+
+    @Override
+    public TicksBuilder addToKwargs(String k, List<? extends Number> v) {
+        return innerBuilder.addToKwargs(k, v);
+    }
+
+    @Override
+    public TicksBuilder addToKwargs(String k, boolean v) {
+        return innerBuilder.addToKwargs(k, v);
+    }
+
     @Override
     public String build() {
         return innerBuilder.build();
diff --git a/src/main/java/com/github/sh0nk/matplotlib4j/kwargs/KwArgsBuilder.java b/src/main/java/com/github/sh0nk/matplotlib4j/kwargs/KwArgsBuilder.java
new file mode 100644
index 0000000..7194f05
--- /dev/null
+++ b/src/main/java/com/github/sh0nk/matplotlib4j/kwargs/KwArgsBuilder.java
@@ -0,0 +1,18 @@
+package com.github.sh0nk.matplotlib4j.kwargs;
+
+import com.github.sh0nk.matplotlib4j.builder.Builder;
+import java.util.List;
+
+public interface KwArgsBuilder<T extends Builder> {
+
+    T addToKwargs(String k, String v);
+
+    T addToKwargsWithoutQuoting(String k, String v);
+
+    T addToKwargs(String k, Number n);
+
+    T addToKwargs(String k, List<? extends Number> v);
+
+    T addToKwargs(String k, boolean v);
+
+}
diff --git a/src/main/java/com/github/sh0nk/matplotlib4j/kwargs/KwargsBuilder.java b/src/main/java/com/github/sh0nk/matplotlib4j/kwargs/KwargsBuilder.java
deleted file mode 100644
index bc908dc..0000000
--- a/src/main/java/com/github/sh0nk/matplotlib4j/kwargs/KwargsBuilder.java
+++ /dev/null
@@ -1,5 +0,0 @@
-package com.github.sh0nk.matplotlib4j.kwargs;
-
-public interface KwargsBuilder {
-
-}
diff --git a/src/main/java/com/github/sh0nk/matplotlib4j/kwargs/Line2DBuilder.java b/src/main/java/com/github/sh0nk/matplotlib4j/kwargs/Line2DBuilder.java
index eb62521..4606f08 100644
--- a/src/main/java/com/github/sh0nk/matplotlib4j/kwargs/Line2DBuilder.java
+++ b/src/main/java/com/github/sh0nk/matplotlib4j/kwargs/Line2DBuilder.java
@@ -2,7 +2,7 @@
 
 import com.github.sh0nk.matplotlib4j.builder.Builder;
 
-public interface Line2DBuilder<T extends Builder> extends KwargsBuilder {
+public interface Line2DBuilder<T extends Builder> {
 
     T linestyle(String arg);
 
diff --git a/src/main/java/com/github/sh0nk/matplotlib4j/kwargs/PatchBuilder.java b/src/main/java/com/github/sh0nk/matplotlib4j/kwargs/PatchBuilder.java
index 0b48512..e9fb0bb 100644
--- a/src/main/java/com/github/sh0nk/matplotlib4j/kwargs/PatchBuilder.java
+++ b/src/main/java/com/github/sh0nk/matplotlib4j/kwargs/PatchBuilder.java
@@ -2,7 +2,7 @@
 
 import com.github.sh0nk.matplotlib4j.builder.Builder;
 
-public interface PatchBuilder<T extends Builder> extends KwargsBuilder {
+public interface PatchBuilder<T extends Builder> {
 
     T linestyle(String arg);
 
diff --git a/src/main/java/com/github/sh0nk/matplotlib4j/kwargs/TextArgsBuilder.java b/src/main/java/com/github/sh0nk/matplotlib4j/kwargs/TextArgsBuilder.java
index b95977d..d1fc050 100644
--- a/src/main/java/com/github/sh0nk/matplotlib4j/kwargs/TextArgsBuilder.java
+++ b/src/main/java/com/github/sh0nk/matplotlib4j/kwargs/TextArgsBuilder.java
@@ -2,7 +2,7 @@
 
 import com.github.sh0nk.matplotlib4j.builder.Builder;
 
-public interface TextArgsBuilder<T extends Builder> extends KwargsBuilder {
+public interface TextArgsBuilder<T extends Builder> {
 
 
 }