diff --git a/.idea/graphql_parser.iml b/.idea/graphql_parser.iml
index f5c40a17..377564ba 100644
--- a/.idea/graphql_parser.iml
+++ b/.idea/graphql_parser.iml
@@ -5,15 +5,11 @@
-
-
-
-
\ No newline at end of file
diff --git a/.idea/runConfigurations/All_Tests.xml b/.idea/runConfigurations/All_Tests.xml
index 0e975a39..9b10a435 100644
--- a/.idea/runConfigurations/All_Tests.xml
+++ b/.idea/runConfigurations/All_Tests.xml
@@ -1,6 +1,6 @@
-
+
\ No newline at end of file
diff --git a/.travis.yml b/.travis.yml
index de2210c9..7c2f802a 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1 +1,3 @@
-language: dart
\ No newline at end of file
+language: dart
+script:
+ - travis.sh
\ No newline at end of file
diff --git a/README.md b/README.md
index 9d7ea6bc..73876bc8 100644
--- a/README.md
+++ b/README.md
@@ -1,39 +1,13 @@
-# graphql_parser
-[![Pub](https://img.shields.io/pub/v/graphql_parser.svg)](https://pub.dartlang.org/packages/graphql_parser)
-[![build status](https://travis-ci.org/thosakwe/graphql_parser.svg)](https://travis-ci.org/thosakwe/graphql_parser)
+# graphql
+A complete implementation of the official
+[GraphQL specification](http://facebook.github.io/graphql/October2016/#sec-Language),
+in the Dart programming language.
-Parses GraphQL queries and schemas. Also includes a `GraphQLVisitor` class.
+The goal of this project is to provide to server-side
+users of Dart an alternative to REST API's.
-*This library is merely a parser/visitor*. Any sort of actual GraphQL API functionality must be implemented by you,
-or by a third-party package.
-
-[Angel framework](https://angel-dart.github.io)
-users should consider
-[`package:angel_graphql`](https://pub.dartlang.org/packages/angel_graphql)
-as a dead-simple way to add GraphQL functionality to their servers.
-
-# Installation
-Add `graphql_parser` as a dependency in your `pubspec.yaml` file:
-
-```yaml
-dependencies:
- graphql_parser: ^1.0.0
-```
-
-# Usage
-The AST featured in this library is directly based off this ANTLR4 grammar created by Joseph T. McBride:
-https://github.com/antlr/grammars-v4/blob/master/graphql/GraphQL.g4
-
-```dart
-import 'package:graphql_parser/graphql_parser.dart';
-
-doSomething(String text) {
- var tokens = scan(text);
- var parser = new Parser(tokens);
-
- // Parse the GraphQL document using recursive descent
- var doc = parser.parseDocument();
-
- // Do something with the parsed GraphQL document...
-}
-```
+Included is also
+`package:angel_graphql`, which, when combined with the
+[Angel](https://github.com/angel-dart) framework, allows
+server-side Dart users to build backends with GraphQL and
+virtually any database imaginable.
\ No newline at end of file
diff --git a/.gitignore b/angel_graphql/.gitignore
similarity index 99%
rename from .gitignore
rename to angel_graphql/.gitignore
index e822a056..26517d3b 100644
--- a/.gitignore
+++ b/angel_graphql/.gitignore
@@ -52,7 +52,7 @@ pubspec.lock
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
# User-specific stuff:
-.idea/**/workspace.xml
+../.idea/workspace.xml
.idea/**/tasks.xml
.idea/dictionaries
diff --git a/angel_graphql/LICENSE b/angel_graphql/LICENSE
new file mode 100644
index 00000000..89074fd3
--- /dev/null
+++ b/angel_graphql/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2017 The Angel Framework
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/graphql_generator/.gitignore b/graphql_generator/.gitignore
new file mode 100644
index 00000000..26517d3b
--- /dev/null
+++ b/graphql_generator/.gitignore
@@ -0,0 +1,93 @@
+# See https://www.dartlang.org/tools/private-files.html
+
+# Files and directories created by pub
+.buildlog
+.packages
+.project
+.pub/
+.scripts-bin/
+build/
+**/packages/
+
+# Files created by dart2js
+# (Most Dart developers will use pub build to compile Dart, use/modify these
+# rules if you intend to use dart2js directly
+# Convention is to use extension '.dart.js' for Dart compiled to Javascript to
+# differentiate from explicit Javascript files)
+*.dart.js
+*.part.js
+*.js.deps
+*.js.map
+*.info.json
+
+# Directory created by dartdoc
+doc/api/
+
+# Don't commit pubspec lock file
+# (Library packages only! Remove pattern if developing an application package)
+pubspec.lock
+### Dart template
+# See https://www.dartlang.org/tools/private-files.html
+
+# Files and directories created by pub
+
+# SDK 1.20 and later (no longer creates packages directories)
+
+# Older SDK versions
+# (Include if the minimum SDK version specified in pubsepc.yaml is earlier than 1.20)
+
+
+# Files created by dart2js
+# (Most Dart developers will use pub build to compile Dart, use/modify these
+# rules if you intend to use dart2js directly
+# Convention is to use extension '.dart.js' for Dart compiled to Javascript to
+# differentiate from explicit Javascript files)
+
+# Directory created by dartdoc
+
+# Don't commit pubspec lock file
+# (Library packages only! Remove pattern if developing an application package)
+### JetBrains template
+# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and Webstorm
+# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
+
+# User-specific stuff:
+../.idea/workspace.xml
+.idea/**/tasks.xml
+.idea/dictionaries
+
+# Sensitive or high-churn files:
+.idea/**/dataSources/
+.idea/**/dataSources.ids
+.idea/**/dataSources.xml
+.idea/**/dataSources.local.xml
+.idea/**/sqlDataSources.xml
+.idea/**/dynamic.xml
+.idea/**/uiDesigner.xml
+
+# Gradle:
+.idea/**/gradle.xml
+.idea/**/libraries
+
+# Mongo Explorer plugin:
+.idea/**/mongoSettings.xml
+
+## File-based project format:
+*.iws
+
+## Plugin-specific files:
+
+# IntelliJ
+/out/
+
+# mpeltonen/sbt-idea plugin
+.idea_modules/
+
+# JIRA plugin
+atlassian-ide-plugin.xml
+
+# Crashlytics plugin (for Android Studio and IntelliJ)
+com_crashlytics_export_strings.xml
+crashlytics.properties
+crashlytics-build.properties
+fabric.properties
diff --git a/graphql_generator/LICENSE b/graphql_generator/LICENSE
new file mode 100644
index 00000000..89074fd3
--- /dev/null
+++ b/graphql_generator/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2017 The Angel Framework
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/graphql_parser/.gitignore b/graphql_parser/.gitignore
new file mode 100644
index 00000000..26517d3b
--- /dev/null
+++ b/graphql_parser/.gitignore
@@ -0,0 +1,93 @@
+# See https://www.dartlang.org/tools/private-files.html
+
+# Files and directories created by pub
+.buildlog
+.packages
+.project
+.pub/
+.scripts-bin/
+build/
+**/packages/
+
+# Files created by dart2js
+# (Most Dart developers will use pub build to compile Dart, use/modify these
+# rules if you intend to use dart2js directly
+# Convention is to use extension '.dart.js' for Dart compiled to Javascript to
+# differentiate from explicit Javascript files)
+*.dart.js
+*.part.js
+*.js.deps
+*.js.map
+*.info.json
+
+# Directory created by dartdoc
+doc/api/
+
+# Don't commit pubspec lock file
+# (Library packages only! Remove pattern if developing an application package)
+pubspec.lock
+### Dart template
+# See https://www.dartlang.org/tools/private-files.html
+
+# Files and directories created by pub
+
+# SDK 1.20 and later (no longer creates packages directories)
+
+# Older SDK versions
+# (Include if the minimum SDK version specified in pubsepc.yaml is earlier than 1.20)
+
+
+# Files created by dart2js
+# (Most Dart developers will use pub build to compile Dart, use/modify these
+# rules if you intend to use dart2js directly
+# Convention is to use extension '.dart.js' for Dart compiled to Javascript to
+# differentiate from explicit Javascript files)
+
+# Directory created by dartdoc
+
+# Don't commit pubspec lock file
+# (Library packages only! Remove pattern if developing an application package)
+### JetBrains template
+# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and Webstorm
+# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
+
+# User-specific stuff:
+../.idea/workspace.xml
+.idea/**/tasks.xml
+.idea/dictionaries
+
+# Sensitive or high-churn files:
+.idea/**/dataSources/
+.idea/**/dataSources.ids
+.idea/**/dataSources.xml
+.idea/**/dataSources.local.xml
+.idea/**/sqlDataSources.xml
+.idea/**/dynamic.xml
+.idea/**/uiDesigner.xml
+
+# Gradle:
+.idea/**/gradle.xml
+.idea/**/libraries
+
+# Mongo Explorer plugin:
+.idea/**/mongoSettings.xml
+
+## File-based project format:
+*.iws
+
+## Plugin-specific files:
+
+# IntelliJ
+/out/
+
+# mpeltonen/sbt-idea plugin
+.idea_modules/
+
+# JIRA plugin
+atlassian-ide-plugin.xml
+
+# Crashlytics plugin (for Android Studio and IntelliJ)
+com_crashlytics_export_strings.xml
+crashlytics.properties
+crashlytics-build.properties
+fabric.properties
diff --git a/graphql_parser/LICENSE b/graphql_parser/LICENSE
new file mode 100644
index 00000000..89074fd3
--- /dev/null
+++ b/graphql_parser/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2017 The Angel Framework
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/graphql_parser/README.md b/graphql_parser/README.md
new file mode 100644
index 00000000..9d7ea6bc
--- /dev/null
+++ b/graphql_parser/README.md
@@ -0,0 +1,39 @@
+# graphql_parser
+[![Pub](https://img.shields.io/pub/v/graphql_parser.svg)](https://pub.dartlang.org/packages/graphql_parser)
+[![build status](https://travis-ci.org/thosakwe/graphql_parser.svg)](https://travis-ci.org/thosakwe/graphql_parser)
+
+Parses GraphQL queries and schemas. Also includes a `GraphQLVisitor` class.
+
+*This library is merely a parser/visitor*. Any sort of actual GraphQL API functionality must be implemented by you,
+or by a third-party package.
+
+[Angel framework](https://angel-dart.github.io)
+users should consider
+[`package:angel_graphql`](https://pub.dartlang.org/packages/angel_graphql)
+as a dead-simple way to add GraphQL functionality to their servers.
+
+# Installation
+Add `graphql_parser` as a dependency in your `pubspec.yaml` file:
+
+```yaml
+dependencies:
+ graphql_parser: ^1.0.0
+```
+
+# Usage
+The AST featured in this library is directly based off this ANTLR4 grammar created by Joseph T. McBride:
+https://github.com/antlr/grammars-v4/blob/master/graphql/GraphQL.g4
+
+```dart
+import 'package:graphql_parser/graphql_parser.dart';
+
+doSomething(String text) {
+ var tokens = scan(text);
+ var parser = new Parser(tokens);
+
+ // Parse the GraphQL document using recursive descent
+ var doc = parser.parseDocument();
+
+ // Do something with the parsed GraphQL document...
+}
+```
diff --git a/.analysis-options b/graphql_parser/analysis_options.yaml
similarity index 100%
rename from .analysis-options
rename to graphql_parser/analysis_options.yaml
diff --git a/example/basic.dart b/graphql_parser/example/example.dart
similarity index 100%
rename from example/basic.dart
rename to graphql_parser/example/example.dart
diff --git a/example/visitor.dart b/graphql_parser/example/visitor.dart
similarity index 100%
rename from example/visitor.dart
rename to graphql_parser/example/visitor.dart
diff --git a/lib/graphql_parser.dart b/graphql_parser/lib/graphql_parser.dart
similarity index 100%
rename from lib/graphql_parser.dart
rename to graphql_parser/lib/graphql_parser.dart
diff --git a/lib/src/language/ast/alias.dart b/graphql_parser/lib/src/language/ast/alias.dart
similarity index 100%
rename from lib/src/language/ast/alias.dart
rename to graphql_parser/lib/src/language/ast/alias.dart
diff --git a/lib/src/language/ast/argument.dart b/graphql_parser/lib/src/language/ast/argument.dart
similarity index 100%
rename from lib/src/language/ast/argument.dart
rename to graphql_parser/lib/src/language/ast/argument.dart
diff --git a/lib/src/language/ast/array_value.dart b/graphql_parser/lib/src/language/ast/array_value.dart
similarity index 100%
rename from lib/src/language/ast/array_value.dart
rename to graphql_parser/lib/src/language/ast/array_value.dart
diff --git a/lib/src/language/ast/ast.dart b/graphql_parser/lib/src/language/ast/ast.dart
similarity index 100%
rename from lib/src/language/ast/ast.dart
rename to graphql_parser/lib/src/language/ast/ast.dart
diff --git a/lib/src/language/ast/boolean_value.dart b/graphql_parser/lib/src/language/ast/boolean_value.dart
similarity index 100%
rename from lib/src/language/ast/boolean_value.dart
rename to graphql_parser/lib/src/language/ast/boolean_value.dart
diff --git a/lib/src/language/ast/default_value.dart b/graphql_parser/lib/src/language/ast/default_value.dart
similarity index 100%
rename from lib/src/language/ast/default_value.dart
rename to graphql_parser/lib/src/language/ast/default_value.dart
diff --git a/lib/src/language/ast/definition.dart b/graphql_parser/lib/src/language/ast/definition.dart
similarity index 100%
rename from lib/src/language/ast/definition.dart
rename to graphql_parser/lib/src/language/ast/definition.dart
diff --git a/lib/src/language/ast/directive.dart b/graphql_parser/lib/src/language/ast/directive.dart
similarity index 100%
rename from lib/src/language/ast/directive.dart
rename to graphql_parser/lib/src/language/ast/directive.dart
diff --git a/lib/src/language/ast/document.dart b/graphql_parser/lib/src/language/ast/document.dart
similarity index 100%
rename from lib/src/language/ast/document.dart
rename to graphql_parser/lib/src/language/ast/document.dart
diff --git a/lib/src/language/ast/field.dart b/graphql_parser/lib/src/language/ast/field.dart
similarity index 100%
rename from lib/src/language/ast/field.dart
rename to graphql_parser/lib/src/language/ast/field.dart
diff --git a/lib/src/language/ast/field_name.dart b/graphql_parser/lib/src/language/ast/field_name.dart
similarity index 100%
rename from lib/src/language/ast/field_name.dart
rename to graphql_parser/lib/src/language/ast/field_name.dart
diff --git a/lib/src/language/ast/fragment_definition.dart b/graphql_parser/lib/src/language/ast/fragment_definition.dart
similarity index 100%
rename from lib/src/language/ast/fragment_definition.dart
rename to graphql_parser/lib/src/language/ast/fragment_definition.dart
diff --git a/lib/src/language/ast/fragment_spread.dart b/graphql_parser/lib/src/language/ast/fragment_spread.dart
similarity index 100%
rename from lib/src/language/ast/fragment_spread.dart
rename to graphql_parser/lib/src/language/ast/fragment_spread.dart
diff --git a/lib/src/language/ast/inline_fragment.dart b/graphql_parser/lib/src/language/ast/inline_fragment.dart
similarity index 100%
rename from lib/src/language/ast/inline_fragment.dart
rename to graphql_parser/lib/src/language/ast/inline_fragment.dart
diff --git a/lib/src/language/ast/list_type.dart b/graphql_parser/lib/src/language/ast/list_type.dart
similarity index 100%
rename from lib/src/language/ast/list_type.dart
rename to graphql_parser/lib/src/language/ast/list_type.dart
diff --git a/lib/src/language/ast/node.dart b/graphql_parser/lib/src/language/ast/node.dart
similarity index 100%
rename from lib/src/language/ast/node.dart
rename to graphql_parser/lib/src/language/ast/node.dart
diff --git a/lib/src/language/ast/number_value.dart b/graphql_parser/lib/src/language/ast/number_value.dart
similarity index 100%
rename from lib/src/language/ast/number_value.dart
rename to graphql_parser/lib/src/language/ast/number_value.dart
diff --git a/lib/src/language/ast/operation_definition.dart b/graphql_parser/lib/src/language/ast/operation_definition.dart
similarity index 100%
rename from lib/src/language/ast/operation_definition.dart
rename to graphql_parser/lib/src/language/ast/operation_definition.dart
diff --git a/lib/src/language/ast/selection.dart b/graphql_parser/lib/src/language/ast/selection.dart
similarity index 100%
rename from lib/src/language/ast/selection.dart
rename to graphql_parser/lib/src/language/ast/selection.dart
diff --git a/lib/src/language/ast/selection_set.dart b/graphql_parser/lib/src/language/ast/selection_set.dart
similarity index 100%
rename from lib/src/language/ast/selection_set.dart
rename to graphql_parser/lib/src/language/ast/selection_set.dart
diff --git a/lib/src/language/ast/string_value.dart b/graphql_parser/lib/src/language/ast/string_value.dart
similarity index 100%
rename from lib/src/language/ast/string_value.dart
rename to graphql_parser/lib/src/language/ast/string_value.dart
diff --git a/lib/src/language/ast/type.dart b/graphql_parser/lib/src/language/ast/type.dart
similarity index 100%
rename from lib/src/language/ast/type.dart
rename to graphql_parser/lib/src/language/ast/type.dart
diff --git a/lib/src/language/ast/type_condition.dart b/graphql_parser/lib/src/language/ast/type_condition.dart
similarity index 100%
rename from lib/src/language/ast/type_condition.dart
rename to graphql_parser/lib/src/language/ast/type_condition.dart
diff --git a/lib/src/language/ast/type_name.dart b/graphql_parser/lib/src/language/ast/type_name.dart
similarity index 100%
rename from lib/src/language/ast/type_name.dart
rename to graphql_parser/lib/src/language/ast/type_name.dart
diff --git a/lib/src/language/ast/value.dart b/graphql_parser/lib/src/language/ast/value.dart
similarity index 100%
rename from lib/src/language/ast/value.dart
rename to graphql_parser/lib/src/language/ast/value.dart
diff --git a/lib/src/language/ast/value_or_variable.dart b/graphql_parser/lib/src/language/ast/value_or_variable.dart
similarity index 100%
rename from lib/src/language/ast/value_or_variable.dart
rename to graphql_parser/lib/src/language/ast/value_or_variable.dart
diff --git a/lib/src/language/ast/variable.dart b/graphql_parser/lib/src/language/ast/variable.dart
similarity index 100%
rename from lib/src/language/ast/variable.dart
rename to graphql_parser/lib/src/language/ast/variable.dart
diff --git a/lib/src/language/ast/variable_definition.dart b/graphql_parser/lib/src/language/ast/variable_definition.dart
similarity index 100%
rename from lib/src/language/ast/variable_definition.dart
rename to graphql_parser/lib/src/language/ast/variable_definition.dart
diff --git a/lib/src/language/ast/variable_definitions.dart b/graphql_parser/lib/src/language/ast/variable_definitions.dart
similarity index 100%
rename from lib/src/language/ast/variable_definitions.dart
rename to graphql_parser/lib/src/language/ast/variable_definitions.dart
diff --git a/lib/src/language/language.dart b/graphql_parser/lib/src/language/language.dart
similarity index 100%
rename from lib/src/language/language.dart
rename to graphql_parser/lib/src/language/language.dart
diff --git a/lib/src/language/lexer.dart b/graphql_parser/lib/src/language/lexer.dart
similarity index 100%
rename from lib/src/language/lexer.dart
rename to graphql_parser/lib/src/language/lexer.dart
diff --git a/lib/src/language/parser.dart b/graphql_parser/lib/src/language/parser.dart
similarity index 100%
rename from lib/src/language/parser.dart
rename to graphql_parser/lib/src/language/parser.dart
diff --git a/lib/src/language/syntax_error.dart b/graphql_parser/lib/src/language/syntax_error.dart
similarity index 100%
rename from lib/src/language/syntax_error.dart
rename to graphql_parser/lib/src/language/syntax_error.dart
diff --git a/lib/src/language/token.dart b/graphql_parser/lib/src/language/token.dart
similarity index 100%
rename from lib/src/language/token.dart
rename to graphql_parser/lib/src/language/token.dart
diff --git a/lib/src/language/token_type.dart b/graphql_parser/lib/src/language/token_type.dart
similarity index 100%
rename from lib/src/language/token_type.dart
rename to graphql_parser/lib/src/language/token_type.dart
diff --git a/lib/visitor.dart b/graphql_parser/lib/visitor.dart
similarity index 100%
rename from lib/visitor.dart
rename to graphql_parser/lib/visitor.dart
diff --git a/pubspec.yaml b/graphql_parser/pubspec.yaml
similarity index 100%
rename from pubspec.yaml
rename to graphql_parser/pubspec.yaml
diff --git a/test/all.dart b/graphql_parser/test/all.dart
similarity index 100%
rename from test/all.dart
rename to graphql_parser/test/all.dart
diff --git a/test/argument_test.dart b/graphql_parser/test/argument_test.dart
similarity index 100%
rename from test/argument_test.dart
rename to graphql_parser/test/argument_test.dart
diff --git a/test/common.dart b/graphql_parser/test/common.dart
similarity index 100%
rename from test/common.dart
rename to graphql_parser/test/common.dart
diff --git a/test/directive_test.dart b/graphql_parser/test/directive_test.dart
similarity index 100%
rename from test/directive_test.dart
rename to graphql_parser/test/directive_test.dart
diff --git a/test/document_test.dart b/graphql_parser/test/document_test.dart
similarity index 100%
rename from test/document_test.dart
rename to graphql_parser/test/document_test.dart
diff --git a/test/field_test.dart b/graphql_parser/test/field_test.dart
similarity index 100%
rename from test/field_test.dart
rename to graphql_parser/test/field_test.dart
diff --git a/test/fragment_spread_test.dart b/graphql_parser/test/fragment_spread_test.dart
similarity index 100%
rename from test/fragment_spread_test.dart
rename to graphql_parser/test/fragment_spread_test.dart
diff --git a/test/inline_fragment_test.dart b/graphql_parser/test/inline_fragment_test.dart
similarity index 100%
rename from test/inline_fragment_test.dart
rename to graphql_parser/test/inline_fragment_test.dart
diff --git a/test/selection_set_test.dart b/graphql_parser/test/selection_set_test.dart
similarity index 100%
rename from test/selection_set_test.dart
rename to graphql_parser/test/selection_set_test.dart
diff --git a/test/type_test.dart b/graphql_parser/test/type_test.dart
similarity index 100%
rename from test/type_test.dart
rename to graphql_parser/test/type_test.dart
diff --git a/test/value_test.dart b/graphql_parser/test/value_test.dart
similarity index 100%
rename from test/value_test.dart
rename to graphql_parser/test/value_test.dart
diff --git a/test/variable_definition_test.dart b/graphql_parser/test/variable_definition_test.dart
similarity index 100%
rename from test/variable_definition_test.dart
rename to graphql_parser/test/variable_definition_test.dart
diff --git a/test/variable_test.dart b/graphql_parser/test/variable_test.dart
similarity index 100%
rename from test/variable_test.dart
rename to graphql_parser/test/variable_test.dart
diff --git a/graphql_schema/.gitignore b/graphql_schema/.gitignore
new file mode 100644
index 00000000..26517d3b
--- /dev/null
+++ b/graphql_schema/.gitignore
@@ -0,0 +1,93 @@
+# See https://www.dartlang.org/tools/private-files.html
+
+# Files and directories created by pub
+.buildlog
+.packages
+.project
+.pub/
+.scripts-bin/
+build/
+**/packages/
+
+# Files created by dart2js
+# (Most Dart developers will use pub build to compile Dart, use/modify these
+# rules if you intend to use dart2js directly
+# Convention is to use extension '.dart.js' for Dart compiled to Javascript to
+# differentiate from explicit Javascript files)
+*.dart.js
+*.part.js
+*.js.deps
+*.js.map
+*.info.json
+
+# Directory created by dartdoc
+doc/api/
+
+# Don't commit pubspec lock file
+# (Library packages only! Remove pattern if developing an application package)
+pubspec.lock
+### Dart template
+# See https://www.dartlang.org/tools/private-files.html
+
+# Files and directories created by pub
+
+# SDK 1.20 and later (no longer creates packages directories)
+
+# Older SDK versions
+# (Include if the minimum SDK version specified in pubsepc.yaml is earlier than 1.20)
+
+
+# Files created by dart2js
+# (Most Dart developers will use pub build to compile Dart, use/modify these
+# rules if you intend to use dart2js directly
+# Convention is to use extension '.dart.js' for Dart compiled to Javascript to
+# differentiate from explicit Javascript files)
+
+# Directory created by dartdoc
+
+# Don't commit pubspec lock file
+# (Library packages only! Remove pattern if developing an application package)
+### JetBrains template
+# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and Webstorm
+# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
+
+# User-specific stuff:
+../.idea/workspace.xml
+.idea/**/tasks.xml
+.idea/dictionaries
+
+# Sensitive or high-churn files:
+.idea/**/dataSources/
+.idea/**/dataSources.ids
+.idea/**/dataSources.xml
+.idea/**/dataSources.local.xml
+.idea/**/sqlDataSources.xml
+.idea/**/dynamic.xml
+.idea/**/uiDesigner.xml
+
+# Gradle:
+.idea/**/gradle.xml
+.idea/**/libraries
+
+# Mongo Explorer plugin:
+.idea/**/mongoSettings.xml
+
+## File-based project format:
+*.iws
+
+## Plugin-specific files:
+
+# IntelliJ
+/out/
+
+# mpeltonen/sbt-idea plugin
+.idea_modules/
+
+# JIRA plugin
+atlassian-ide-plugin.xml
+
+# Crashlytics plugin (for Android Studio and IntelliJ)
+com_crashlytics_export_strings.xml
+crashlytics.properties
+crashlytics-build.properties
+fabric.properties
diff --git a/graphql_schema/LICENSE b/graphql_schema/LICENSE
new file mode 100644
index 00000000..89074fd3
--- /dev/null
+++ b/graphql_schema/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2017 The Angel Framework
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/graphql_server/.gitignore b/graphql_server/.gitignore
new file mode 100644
index 00000000..26517d3b
--- /dev/null
+++ b/graphql_server/.gitignore
@@ -0,0 +1,93 @@
+# See https://www.dartlang.org/tools/private-files.html
+
+# Files and directories created by pub
+.buildlog
+.packages
+.project
+.pub/
+.scripts-bin/
+build/
+**/packages/
+
+# Files created by dart2js
+# (Most Dart developers will use pub build to compile Dart, use/modify these
+# rules if you intend to use dart2js directly
+# Convention is to use extension '.dart.js' for Dart compiled to Javascript to
+# differentiate from explicit Javascript files)
+*.dart.js
+*.part.js
+*.js.deps
+*.js.map
+*.info.json
+
+# Directory created by dartdoc
+doc/api/
+
+# Don't commit pubspec lock file
+# (Library packages only! Remove pattern if developing an application package)
+pubspec.lock
+### Dart template
+# See https://www.dartlang.org/tools/private-files.html
+
+# Files and directories created by pub
+
+# SDK 1.20 and later (no longer creates packages directories)
+
+# Older SDK versions
+# (Include if the minimum SDK version specified in pubsepc.yaml is earlier than 1.20)
+
+
+# Files created by dart2js
+# (Most Dart developers will use pub build to compile Dart, use/modify these
+# rules if you intend to use dart2js directly
+# Convention is to use extension '.dart.js' for Dart compiled to Javascript to
+# differentiate from explicit Javascript files)
+
+# Directory created by dartdoc
+
+# Don't commit pubspec lock file
+# (Library packages only! Remove pattern if developing an application package)
+### JetBrains template
+# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and Webstorm
+# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
+
+# User-specific stuff:
+../.idea/workspace.xml
+.idea/**/tasks.xml
+.idea/dictionaries
+
+# Sensitive or high-churn files:
+.idea/**/dataSources/
+.idea/**/dataSources.ids
+.idea/**/dataSources.xml
+.idea/**/dataSources.local.xml
+.idea/**/sqlDataSources.xml
+.idea/**/dynamic.xml
+.idea/**/uiDesigner.xml
+
+# Gradle:
+.idea/**/gradle.xml
+.idea/**/libraries
+
+# Mongo Explorer plugin:
+.idea/**/mongoSettings.xml
+
+## File-based project format:
+*.iws
+
+## Plugin-specific files:
+
+# IntelliJ
+/out/
+
+# mpeltonen/sbt-idea plugin
+.idea_modules/
+
+# JIRA plugin
+atlassian-ide-plugin.xml
+
+# Crashlytics plugin (for Android Studio and IntelliJ)
+com_crashlytics_export_strings.xml
+crashlytics.properties
+crashlytics-build.properties
+fabric.properties
diff --git a/graphql_server/LICENSE b/graphql_server/LICENSE
new file mode 100644
index 00000000..89074fd3
--- /dev/null
+++ b/graphql_server/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2017 The Angel Framework
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/travis.sh b/travis.sh
new file mode 100644
index 00000000..2da982a9
--- /dev/null
+++ b/travis.sh
@@ -0,0 +1,4 @@
+#!/usr/bin/env bash
+set -e
+set -x
+cd graphql_parser && pub get && pub run test -j2 && cd..
\ No newline at end of file