diff --git a/.buildinfo b/.buildinfo
new file mode 100644
index 00000000..20390eb4
--- /dev/null
+++ b/.buildinfo
@@ -0,0 +1,4 @@
+# Sphinx build info version 1
+# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
+config: b0ac1b0474e50acb76a5e988c4a71d15
+tags: 645f666f9bcd5a90fca523b33c5a78b7
diff --git a/.doctrees/environment.pickle b/.doctrees/environment.pickle
new file mode 100644
index 00000000..d57dffb6
Binary files /dev/null and b/.doctrees/environment.pickle differ
diff --git a/.doctrees/index.doctree b/.doctrees/index.doctree
new file mode 100644
index 00000000..5d087769
Binary files /dev/null and b/.doctrees/index.doctree differ
diff --git a/.doctrees/markdown/README.doctree b/.doctrees/markdown/README.doctree
new file mode 100644
index 00000000..4d78c3cb
Binary files /dev/null and b/.doctrees/markdown/README.doctree differ
diff --git a/.doctrees/rst/enums.doctree b/.doctrees/rst/enums.doctree
new file mode 100644
index 00000000..1039b637
Binary files /dev/null and b/.doctrees/rst/enums.doctree differ
diff --git a/.doctrees/rst/examples.doctree b/.doctrees/rst/examples.doctree
new file mode 100644
index 00000000..7f861664
Binary files /dev/null and b/.doctrees/rst/examples.doctree differ
diff --git a/.doctrees/rst/extras.doctree b/.doctrees/rst/extras.doctree
new file mode 100644
index 00000000..87ed4caf
Binary files /dev/null and b/.doctrees/rst/extras.doctree differ
diff --git a/.doctrees/rst/forge.doctree b/.doctrees/rst/forge.doctree
new file mode 100644
index 00000000..5bff9630
Binary files /dev/null and b/.doctrees/rst/forge.doctree differ
diff --git a/.doctrees/rst/functions.doctree b/.doctrees/rst/functions.doctree
new file mode 100644
index 00000000..82de5697
Binary files /dev/null and b/.doctrees/rst/functions.doctree differ
diff --git a/.doctrees/rst/macros.doctree b/.doctrees/rst/macros.doctree
new file mode 100644
index 00000000..cce5c06a
Binary files /dev/null and b/.doctrees/rst/macros.doctree differ
diff --git a/.doctrees/rst/samples.doctree b/.doctrees/rst/samples.doctree
new file mode 100644
index 00000000..dce81e69
Binary files /dev/null and b/.doctrees/rst/samples.doctree differ
diff --git a/.doctrees/rst/typedefs.doctree b/.doctrees/rst/typedefs.doctree
new file mode 100644
index 00000000..a6ff0636
Binary files /dev/null and b/.doctrees/rst/typedefs.doctree differ
diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md
deleted file mode 100644
index 96e8c739..00000000
--- a/.github/CONTRIBUTING.md
+++ /dev/null
@@ -1,167 +0,0 @@
-# Contributing to Forge
-
-We'd love for you to contribute to our source code and to make Forge even better than it is
-today! Here are the guidelines we'd like you to follow:
-
- - [Question or Problem?](#question)
- - [Issues and Bugs](#issue)
- - [Feature Requests](#feature)
- - [Submission Guidelines](#submit)
- - [Commit Message Guidelines](#commit)
-
-## Got a Question or Problem?
-
-If you have questions about how to use Forge, please direct these to the [Google Group][groups]
-discussion list or [Github][github]. We are also available on [Gitter][gitter].
-
-## Found an Issue?
-
-If you find a bug in the source code or a mistake in the documentation, you can help us by
-submitting an issue to our [GitHub Repository][github]. Even better you can submit a Pull Request
-with a fix.
-
-## Want a Feature?
-
-You can request a new feature by submitting an issue to our [GitHub Repository][github]. If you
-would like to implement a new feature then consider what kind of change it is:
-
-* **Major Changes** that you wish to contribute to the project should be discussed first on our
- [Github][github] or [Gitter][gitter] so that we can better coordinate our efforts,
- prevent duplication of work, and help you to craft the change so that it is successfully accepted
- into the project.
-* **Small Changes** can be crafted and submitted to the [GitHub Repository][github] as a Pull
- Request.
-
-
-## Want a Documentation Fix?
-
-If you want to help improve the documentation, it's a good idea to let others know what you're working on to
-minimize duplication of effort. Create a new issue (or comment on a related existing one) to let
-others know what you're working on.
-
-Please build and test the documentation before submitting the PR to be sure you
-haven't accidentally introduced any layout or formatting issues. You should also make sure that your
-commit message starts with "docs" and follows the **[Commit Message Guidelines](#commit)** outlined
-below.
-
-## Submission Guidelines
-
-### Submitting an Issue
-Before you submit your issue search the archive, maybe your question was already answered.
-
-If your issue appears to be a bug, and hasn't been reported, open a new issue. Help us to maximize
-the effort we can spend fixing issues and adding new features, by not reporting duplicate issues.
-Providing the following information will increase the chances of your issue being dealt with
-quickly:
-
-* **Overview of the Issue**
-* **Forge Version(s)** - is it a regression?
-* **Operating System** - is this a problem on all OSes?
-* **Reproduce the Error** - provide an example piece of code that can replicate the issue on our
- end.
-* **Related Issues** - has a similar issue been reported before?
-* **Suggest a Fix** - if you can't fix the bug yourself, perhaps you can point to what might be
- causing the problem (line of code or commit)
-
-### Submitting a Pull Request
-Before you submit your pull request consider the following guidelines:
-
-* Search [GitHub](https://github.com/arrayfire/forge/pulls) for an open or closed Pull Request
- that relates to your submission. You don't want to duplicate effort.
-* Make your changes in a new git branch:
-
- ```shell
- git checkout -b my-fix-branch hotfixes-major-minor-patch
- ```
- If there is no hotfixes branch, branch off of devel.
-
- ```shell
- git checkout -b my-fix-branch devel
- ```
-* Commit your changes using a descriptive commit message that follows our
- [commit message conventions](#commit). Adherence to the [commit message conventions](#commit) is required.
-
- ```shell
- git commit -a
- ```
- Note: the optional commit `-a` command line option will automatically "add" and "rm" edited files.
-
-* Build your changes locally to ensure everything checks out.
-* Push your branch to GitHub:
-
- ```shell
- git push origin my-fix-branch
- ```
-
-In GitHub, send a pull request to `forge`. If we suggest changes, then:
-
-* Make the required updates.
-* Re-build and check corresponding examples work as expected.
-* Commit your changes to your branch (e.g. `my-fix-branch`).
-* Push the changes to your GitHub repository (this will update your Pull Request).
-
-If the PR gets too outdated we may ask you to rebase and force push to update the PR:
-
-_WARNING: Squashing or reverting commits and force-pushing thereafter may remove GitHub comments
-on code that were previously made by you or others in your commits. Avoid any form of rebasing
-unless necessary._
-
-That's it! Thank you for your contribution!
-
-#### After your pull request is merged
-
-After your pull request is merged, you can safely delete your branch and pull the changes
-from the upstream repository:
-
-* Delete the remote branch on GitHub either through the GitHub web UI or your local shell
-* Check out the parent(hotfixes-\*.\*.\*/devel) branch
-* Delete the local branch
-* Update the parent branch with the latest upstream version
-
-## Git Commit Guidelines
-
-We follow some rules on how our git commit messages can be formatted. This leads to **more
-readable messages** that are easy to follow when looking through the **project history** and while
-generating change log.
-
-### Commit Message Format
-Each commit message consists of a **header**, a **body** and a **footer**. The header has a special
-format that includes a **scope** and a **subject**:
-
-```
-
-
-
-
-