ga refactor attempt 2