allow internal builder to be used with different configurations