IMHO the parentheses around "with ArrayAccess" can be removed