support and enforce array size in copy()