vop functional (ish)