[descriptor] descriptor should be inmutable. add builder class