jeff doesn't like meshgrid, so we we switch to comprehensions