Add proper async, sync, fromSource, and fromAST methods

Closes gh-2
Fixes #1