Adding protocol arbitrary types