self-contained modules