add some haskelly goodness