do we need `transpose` here? just `reshape` won't do?