added some vector util, might expand in future