added toString overrides for better logging