functional proto