a bit rough, but call it Rev A
example implementation