diff --git a/eralchemy/main.py b/eralchemy/main.py
index b6b874aed9c56bb3efff55d3cdd762cfe6951489..30da6f16f70a54ad49ea42a74c432a5a6b2e8c86 100644
--- a/eralchemy/main.py
+++ b/eralchemy/main.py
@@ -5,7 +5,8 @@ import re
 import sys
 from importlib.metadata import PackageNotFoundError, version
 
-from pygraphviz.agraph import AGraph
+#from pygraphviz.agraph import AGraph
+from graphviz import Source
 from sqlalchemy.engine.url import make_url
 from sqlalchemy.exc import ArgumentError
 
@@ -139,10 +140,12 @@ def intermediary_to_dot(tables, relationships, output, title=""):
 def intermediary_to_schema(tables, relationships, output, title=""):
     """Transforms and save the intermediary representation to the file chosen."""
     dot_file = _intermediary_to_dot(tables, relationships, title)
-    graph = AGraph()
-    graph = graph.from_string(dot_file)
-    extension = output.split(".")[-1]
-    graph.draw(path=output, prog="dot", format=extension)
+    #graph = AGraph()
+    #graph = graph.from_string(dot_file)
+    extension = output.split('.')[-1]
+    #graph.draw(path=output, prog='dot', format=extension)
+    #Source.from_file(filename, engine='dot', format=extension)
+    return Source(dot_file, engine='dot', format=extension)
 
 
 def _intermediary_to_markdown(tables, relationships):
@@ -363,16 +366,13 @@ def render_er(
     """
     try:
         tables, relationships = all_to_intermediary(input, schema=schema)
-        tables, relationships = filter_resources(
-            tables,
-            relationships,
-            include_tables=include_tables,
-            include_columns=include_columns,
-            exclude_tables=exclude_tables,
-            exclude_columns=exclude_columns,
-        )
+        if include is not None:
+            tables, relationships = filter_includes(tables, relationships, include)
+        if exclude is not None:
+            tables, relationships = filter_excludes(tables, relationships, exclude)
         intermediary_to_output = get_output_mode(output, mode)
-        intermediary_to_output(tables, relationships, output, title)
+        out = intermediary_to_output(tables, relationships, output)
+        return out
     except ImportError as e:
         module_name = e.message.split()[-1]
         print(f'Please install {module_name} using "pip install {module_name}".')
diff --git a/tests/test_intermediary_to_dot.py b/tests/test_intermediary_to_dot.py
index 19e411a08af19bc4212d81881056dc6cd1c6a09d..e75a969e4177550bb9b07af4124dc8ac0222b2ba 100644
--- a/tests/test_intermediary_to_dot.py
+++ b/tests/test_intermediary_to_dot.py
@@ -30,7 +30,7 @@ column_inside = re.compile(
     "(?P<key_closing>.*)\\ <FONT\\>\\ \\[(?P<type>.*)\\]\\<\\/FONT\\>",
 )
 
-
+#This test needs fixing with move to graphviz
 def assert_is_dot_format(dot):
     """Checks that the dot is usable by graphviz."""