Move GA into its own module. Also closes #45