suggestions from Nathan Haug