This is not perfect

...but we should maybe merge it anyway?  I am certain there are things to change.
@mmorast :)