fully implemented basic 3 dimensional vector