print functionality complete