abstract proto