implement PTR struct