Now it supports vector type

though not fully tested:)