self-contained build