abstract build