implement KGW