  This paper presents an explicit construction for an $((n,k,d=n-1),
(\alpha,\beta))$ regenerating code over a field $\mathbb{F}_Q$ operating at the
Minimum Storage Regeneration (MSR) point. The MSR code can be constructed to
have rate $k/n$ as close to $1$ as desired, sub-packetization given by
$r^{\frac{n}{r}}$, for $r=(n-k)$, field size no larger than $n$ and where all
code symbols can be repaired with the same minimum data download. The
construction modifies a prior construction by Sasidharan et. al. which required
far larger field-size. A building block appearing in the construction is a
scalar MDS code of block length $n$. The code has a simple layered structure
with coupling across layers, that allows both node repair and data recovery to
be carried out by making multiple calls to a decoder for the scalar MDS code.
While this work was carried out independently, there is considerable overlap
with a prior construction by Ye and Barg.
  It is shown here that essentially the same architecture can be employed to
construct MSR codes using vector binary MDS codes as building blocks in place
of scalar MDS codes. The advantage here is that computations can now be carried
out over a field of smaller size potentially even over the binary field as we
demonstrate in an example. Further, we show how the construction can be
extended to handle the case of $d<(n-1)$ under a mild restriction on the choice
of helper nodes.
