Slight start to make hashnode really represent a hash instead of just being a list wrapper.  Use new isEmpty to simplify logic in builder