needs GSL headers