Copyright 2019 Samuel Green