cleaned up some of the error msg validation to be more DRY, added the 'base' case & test