subject can be array or  proxy