add tuple interface