First pass at GA library, might have messed up where the API code goes