add a protocol that allows you to define validation parameters