all looks good except this conditional is way too huge haha, if we move the conditions here into a function like `hasBody()` then the rest LGTM