split into v-component