(moved custom access pattern stuff to new branch, removing commits that are not relevant to custom access pattern, which are instead in master branch) This reverts commit fc2b6685.