added a bunch of toString methods for easier debugging