https://doi.org/10.1016/j.phpro.2012.03.608