broken up into VCP