rethrow PCE
impoved traited class codegen