more self-contained