Complete GCM flow. Closes #15. Closes #16