diff --git a/README.md b/README.md
index 398cbb9..222a688 100644
--- a/README.md
+++ b/README.md
@@ -37,7 +37,7 @@ Reloading the extension will remove all spaces.
 ```python
 %%space <space-name>
 alpha = 0.50
-print(alpha)
+alpha
 ```
 
 When you execute a cell within a space, all references are firstly searched in
@@ -51,33 +51,6 @@ execution equivalent to not using such keyword.
 Mutable objects in the user namespace can be altered (e.g. appending an item
 to a list).
 
-#### Console output
-
-Conversely to the standard usage of the Python console, you need to print
-objects explicitly (e.g. by using `print`).
-
-- No output to console
-    ```python
-    %%space <space-name>
-    100
-    ```
-- Output to console
-    ```python
-    %%space <space-name>
-    print(100)
-    ```
-
-If you want IPython to use more advanced representations, you can do so via
-IPython's display library (e.g. display a Pandas dataframe as a HTML table).
-
-```python
-%%space <space-name>
-from IPython.display import display
-from pandas import DataFrame
-dataframe = DataFrame(data=[[1, 2]])
-display(dataframe)
-```
-
 ### Remove a space
 
 ```python
diff --git a/jupyter_spaces/space.py b/jupyter_spaces/space.py
index 476a7a0..7c3b89e 100644
--- a/jupyter_spaces/space.py
+++ b/jupyter_spaces/space.py
@@ -1,3 +1,6 @@
+import ast
+import sys
+
 from jupyter_spaces.errors import RegistryError
 
 
@@ -101,7 +104,16 @@ class Space:
         Args:
             source (str): Source code.
         """
-        exec(source, self._execution_namespace)
+        tree = ast.parse(source=source)
+
+        interactive_tree = ast.Interactive(body=tree.body)
+        if sys.version_info > (3, 8):
+            interactive_tree.type_ignores = tree.type_ignores
+
+        compiled_interactive_tree = compile(
+            source=interactive_tree, filename="<string>", mode="single"
+        )
+        exec(compiled_interactive_tree, self._execution_namespace)
 
 
 class ExecutionNamespace(dict):

diff --git a/tests/test_magics.py b/tests/test_magics.py
index e24cc1b..22da064 100644
--- a/tests/test_magics.py
+++ b/tests/test_magics.py
@@ -152,6 +152,11 @@ def test_get_spaces_reflects_extension_reload(ip):
     assert not ip.user_global_ns["spaces"]
 
 
+def test_space_outputs_to_console(ip, capsys):
+    ip.run_cell_magic(magic_name="space", line="tomato", cell="100")
+    assert capsys.readouterr().out == "100\n"
+
+
 def test_space_can_print_to_console(ip):
     with capture_output() as captured:
         ip.run_cell_magic(magic_name="space", line="tomato", cell="print(100)")

Automatic console output
It would be great if space cells would automatically print their return result similar to a normal cell. Having to use the print statement for output is cumbersome.
tests/test_magics.py::test_space_outputs_to_console
tests/test_magics.py::test_space_can_access_user_namespace_references tests/test_magics.py::test_space_references_prioritized_over_user_namespace_references tests/test_magics.py::test_space_cannot_alter_user_namespace_immutable_references tests/test_magics.py::test_space_can_alter_user_namespace_mutable_references tests/test_magics.py::test_space_cannot_alter_user_namespace_references_using_global tests/test_magics.py::test_space_cannot_remove_user_namespace_references tests/test_magics.py::test_space_cannot_remove_user_namespace_references_using_global tests/test_magics.py::test_space_cannot_add_user_namespace_references tests/test_magics.py::test_space_cannot_add_user_namespace_references_using_global tests/test_magics.py::test_space_reference_assignments_persist_in_new_magic_call tests/test_magics.py::test_space_reference_deletions_persist_in_new_magic_call tests/test_magics.py::test_space_references_assignments_are_confined_in_one_space_only tests/test_magics.py::test_space_references_deletions_are_confined_in_one_space_only tests/test_magics.py::test_space_can_execute_newly_defined_lambda_functions tests/test_magics.py::test_space_can_execute_newly_defined_functions tests/test_magics.py::test_space_can_execute_top_level_non_closure_functions tests/test_magics.py::test_get_spaces_can_access_space_references tests/test_magics.py::test_get_spaces_can_alter_space_references tests/test_magics.py::test_get_spaces_can_remove_space_references tests/test_magics.py::test_get_spaces_reflects_space_references_changes tests/test_magics.py::test_get_spaces_reflects_space_removal tests/test_magics.py::test_get_spaces_reflects_extension_reload tests/test_magics.py::test_space_can_print_to_console