diff --git a/LINQ/LINQ/Interpreter/Expressions/Keywords/OutputProjection.vb b/LINQ/LINQ/Interpreter/Expressions/Keywords/OutputProjection.vb
new file mode 100644
index 0000000..7eefa79
--- /dev/null
+++ b/LINQ/LINQ/Interpreter/Expressions/Keywords/OutputProjection.vb
@@ -0,0 +1,22 @@
+Imports LINQ.Runtime
+Imports Microsoft.VisualBasic.ComponentModel.DataSourceModel
+
+Namespace Interpreter.Expressions
+
+ Public Class OutputProjection : Inherits Expression
+
+ Public Property fields As NamedValue(Of Expression)()
+
+ Sub New(fields As IEnumerable(Of NamedValue(Of Expression)))
+ Me.fields = fields.ToArray
+ End Sub
+
+ Public Overrides Function Exec(env As Environment) As Object
+ Throw New NotImplementedException()
+ End Function
+
+ Public Overrides Function ToString() As String
+ Return $"new {{{fields.Select(Function(a) $"{a.Name} = {a.Value}").JoinBy(", ")}}}"
+ End Function
+ End Class
+End Namespace
\ No newline at end of file
diff --git a/LINQ/LINQ/Interpreter/Expressions/SymbolDeclare.vb b/LINQ/LINQ/Interpreter/Expressions/Keywords/SymbolDeclare.vb
similarity index 100%
rename from LINQ/LINQ/Interpreter/Expressions/SymbolDeclare.vb
rename to LINQ/LINQ/Interpreter/Expressions/Keywords/SymbolDeclare.vb
diff --git a/LINQ/LINQ/Interpreter/Expressions/WhereFilter.vb b/LINQ/LINQ/Interpreter/Expressions/Keywords/WhereFilter.vb
similarity index 100%
rename from LINQ/LINQ/Interpreter/Expressions/WhereFilter.vb
rename to LINQ/LINQ/Interpreter/Expressions/Keywords/WhereFilter.vb
diff --git a/LINQ/LINQ/LINQ.vbproj b/LINQ/LINQ/LINQ.vbproj
index 33105a0..cf7a46e 100644
--- a/LINQ/LINQ/LINQ.vbproj
+++ b/LINQ/LINQ/LINQ.vbproj
@@ -129,8 +129,9 @@
-
-
+
+
+