Copyright Manuel Schneckenreither (c) 2020 BSD3, see https://opensource.org/licenses/BSD-3-Clause