Added virtual print function

Also added the option to create a rational out of Expression pointers