better implementing GA