this should probably actually just be `else host`, but I kind of like the explicit "we intend to return nil when host is bad", and it's only like two lines more code