Closes #7.

Implemented all lifecycle hooks, including tests.

Cleaned up use of promises in async methods.