added many vector functions