+ pdf generation (incomplete)