vcm reading logic in its own module