guard can accept an array of guards