introducing pdf generation functionality