allow abstract to generate abstract builder.