public BeanType build() {
        try {
            BeanType beanType = constructor.get();
            setDelayedSetters(beanType);

            return beanType;
        } catch (Exception e) {
//            if (e instanceof InstantiationException || e instanceof IllegalAccessException) {
//                throw new RuntimeException("Failed to construct new instance of " + constructor.getName(), e);
//            }
            throw new RuntimeException(e);
        }
    }