upload as a builder interface