add some more color and DRY it up a bit