half interface