implemented correctly all but AWESOME strategy