another edge case for computing length; unevaluated components; added some dom functions to utils I probably won't use