Print function is now recursive