implemented ga