I can see mostly why this was done... I just worry this function definition is too long to be very nice to use.