Switched to using streams for gets -- much easier to clean up, more flexible