new print function