Make completely self-contained