self-contained with printing