this part looks scary as hell as hosts may put mutable things in there